Skip to content

Latest commit

 

History

History
203 lines (158 loc) · 3.82 KB

File metadata and controls

203 lines (158 loc) · 3.82 KB

基本语法

本文引用代码:demo

变量

  • javascript的变量名区分大小写,A和a是两个不同的变量

  • 声明变量而没有赋值,则该变量为undefined

    var arr;
    console.log(arr);
    //undefined
  • 没有声明就直接使用变量,javascript会报引用错误

    console.log(x);//ReferenceError: x is not defined
  • 同一条var中可声明多个变量

  • 所有变量的声明语句,都会被提升到代码的头部,包括函数,这叫做变量提升

    console.log(a);
    var a=1;
    //undefined
    以上代码等同于
    var a;
    console.log(a);
    a=1;

    a的声明提到了前面,所以代码不会报错,赋值却托在了后面,所以是输出了为赋值的变量

标识符

  • 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)

  • 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9

  • 中文是合法的标识符 var 变量 = 1

  • javascript有一些保留字,不能用作标识符

    arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield

条件语句

if

if后面的表达式之中,不要混淆赋值表达式(=)和相等运算符(==)

var x = 1;
var y = 2;
if(x=y){
    console.log(x);
}
//2

if不加上括号,只能包括下面第一行代码

var a = 11
if(a < 10)
    console.log('a是一位数')
    console.log('a是小于 10 的数')
//a是小于 10 的数

并没有进行bool运算,而是把y的值赋给了x,代码不会报错,所以很容造成疏忽,很多开发者喜欢将常量写在运算符左边,这样一旦写错等号就会报错if (2 = x) { // 报错

switch

switch语句后面的表达式,与case语句后面的表示式比较运行结果时,采用的是严格相等运算符,这意味着比较时不会发生类型转换

var a = 1;
switch(a){
    case true:
        console.log(1);
        break;
    default:
        console.log(0);
}
//0

三元运算符

应用

var myVar;
var arr = myVar ? '1':'0';
console.log(arr);
//0
var msg = '数字' + n + '是' + (n % 2 === 0 ? '偶数' : '奇数');

循环语句

while

例子

var i=0;
while(i<100){
    console.log(i);
    i++;
}
while (true) {
  console.log('Hello, world');
}//死循环

for

所有for循环,都可以改写成while循环

for(var i=0;i<100;i++){
    console.log(i);
}

do while

无论如何都会执行一次

var i=0;
do{
    console.log(i);
    i++;
}while(i<0)
//0

break 和 continue

break退出代码块或者循环

for(var i=0;i<10;i++){
    console.log(i);
    if(i===5)
        break;
}
//0,1,2,3,4,5

continue终止本次循坏,开始下一个循环

for(var i=0;i<10;i++){
   if(i===5)
       continue;
   console.log(i);
}
//0,1,2,3,4,6,7,8,9

label

标签用于定位语句,便于break,continue指定位置

top:
for(var i=0;i<3;i++){
    for(var j=0;j<3;j++){
        if(i===1 && j===1)
            break top;
        console.log(i,j);
    }
}
//0 0
//0 1
//0 2
//1 0
top:
for(var i=0;i<3;i++){
    for(var j=0;j<3;j++){
        if(i===1 && j===1)
            continue top;
        console.log(i,j);
    }
}
//0 0
//0 1
//0 2
//1 0
//2 0
//2 1
//2 2