JS基本语法

322 阅读2分钟

什么是表达式和语句

  • 表达式一般都有值,语句可能有也可能没有

  • 语句一般会改变环境(声明、赋值)

  • 但并不绝对 表达式

  • 1+2 表达式的值为 3

  • add(1, 2)表达式的值为函数的返回值(只有函数有返回值)

  • console.log表达式的值为函数本身

  • console.log(3)表达式的值为undefined 语句

  • var a = 1 是一个申明语句 注意:

JS对大小写敏感。 大部分的空格和回车没有实际意义,但return后面不能加回车。

标识符的规则

第一个字符可以为unicode字母或$或_或中文。后面的字符除了前面还可以有数字

var _ = 1
var $ = 2
var 你好 = 'hi'

但不能出现如

var 9$ = 1
ERROR: Uncaught SyntaxError: Invalid or unexpected token

if...else...语句

语法

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

语句中可以嵌套if...else

注意尽量使用最没有歧义的写法

最推荐写法:

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

次推荐写法:

function fn(){
    if (表达式) {
        return 表达式
    }
    if (表达式) {
        return 表达式
    }
        return 表达式
    }

switch语句 (if语句的升级版)

语法:

switch( ){
    case" ":
    //...
    break;
    case" ":
    //...
    break;
    default:
    //...
}

不写break会让语句贯穿,有时也可以利用

问号冒号表达式

语法:

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

常用于简化if和else中都只包含一个语句的if...else...表达式。

&&短路逻辑

也用于替代if...else...表达式 语法:

A&&B&&C&&D

取A,B,C,D中第一个假值或者D,但不会取true/false。

||短路逻辑

语法:

A||B||C||D

与&&短路逻辑相反,取A,B,C,D中的第一个真值,同样不会取true/false。

while循环

语法:

  while(表达式){语句}

判断表达式的真假;若表达式为真,执行语句;若表达式为假,执行后面语句;执行完再次判断表达式的真假。

死循环

  a = 0.1
  while ( a !==1){
          console.log(a)
          a = a + 0.1
      }

上述语法出现死循环的原因是浮点数

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

语法:

  for (语句1; 表达式2; 语句3){
          循环体
      }

先执行语句1;然后判断表达式2;若为真,执行循环体,然后执行语句3;若为假,退出循环,执行后面语句。

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

执行上述代码会打印0,1,2,3,4。

for( var i = 0; i<5; i++) {
        setTimeout(()=>{console.log(i)})
    }

执行上述代码会打印5次5,setTimeout会让语句延迟执行。

break 退出所有循环

 for(var i=0; i<10; i++){
     if(i%2===1){
         break
     }
 }
 

continue 退出本次循环

 for(var i=0; i<10; i++){
     if(i%2===1){
         continue
     }else{
     console.log(i)
 }

label语句

语法:

 标识符: {
     console.log(i);
     break 标识符;
     console.log('本行不会输出');
 }
 console.log(2);

label语句用得很少但面试会考