JS 语法

· 2分钟

表达式与语句

表达式

表达式是由运算元和运算符(可选)构成,并产生运算结果的语法结构

  • 1 + 2的表达式的值是为3
  • add(1,2)表达式值为函数返回值
  • console.log表达式返回的值为函数本身

语句

由一个或多个关键字和表达式构成

  • var a = 1 是一个语句

二者的区别

  1. 表达式一般都有值,语句可能有也可能没有
  2. 语句一般会改变环境(声明,赋值)
  3. 上面两句话并不是绝对的

标识符

是用来识别具体对象的一个名称

规则

  • 可以是Unicode字母,$,数字,_和中文
  • 数字不能作为标识符的首个字符

变量名是标识符

  • var _ = 1
  • var $ = 2
  • var ___ = 6

注释

不好的注释

  • 把代码翻译为中文
  • 过时的注释
  • 发泄不满的注释

好的注释

  • 踩坑注释
  • 遇到的问题,解决的方法

if语句

语法

if(表达式){
    语句1
}else{
    语句2
}

在{}中只有一句语句的时候可以省略,但不建议省略

变态情况

  • 表达式里可以非常变态,如 a = 1
  • 语句1和语句2里可以非常变态,如嵌套 if else
  • 缩进可以非常变态,如下

    a = 1
    if(a === 2)
    console.log('a')  // 没有执行
    console.log('a等于2')  // a等于2
    

switch 语句

语法

switch(day){
    case 1:
    console.log('今天星期一');
    break;
    case 2:
    console.log('今天星期二');
    break;
    case 3:
    console.log('今天星期三');
    break;
    case 4:
    console.log('今天星期四');
    break;
    case 5:
    console.log('今天星期五');
    break;
    case 6:
    console.log('今天星期六');
    break;
    default:
    console.log('今天星期天');
}

注意:break大部分时候不能省略

问号冒号表达式

if else只有语句1和语句2都只有一句的时候,可以用该表达式代替

表达式1?表达式2:表达式3

短路逻辑

&& 短路逻辑

A && B && C && D

取第一个假值或者D,并不会取true或者false

|| 短路逻辑

A || B || C || D

取第一个真值或者D,并不会取true或者false

while 语句

语法

while(表达式){
    语句
}
  1. 判断表达式的真假
  2. 如果表达式为真,执行语句,执行完再次判断表达式真假;如果表达式为假,执行后面的语句

for 语句

语法糖

for 循环是 while 循环的方便写法

语法

for(语句1;表达式2;语句3){
    循环体
}
  1. 先执行语句1
  2. 判断表达式2
  3. 如果为真,执行循环体,然后执行语句3;如果为假,则退出循环,执行后面的代码

break 和 continue

  • break 是退出所有循环
  • continue 是跳过本次循环

label 语句

语法

foo: {
    console.log(1);
    break;
    console.log('本行不会输出');
}

面试考察(5%)

{
    foo:1
}

上面并不是一个对象,只是一个label