js语法

表达式和语句

  • 表达式会产生一个值,它可以放在任何需要一个值的地方,比如作为一个函数调用的参数
  • 语句可以理解为一种行为,比如循环语句和 if 语句就是典型的语句
  • 区别
    • 表达式一般有值,语句可能有也可能没有
    • 语句一般会改变环境(比如声明,赋值)
    • 当然以上两句并非绝对

标识符

  • 第一个字符,可以是 Unicode 字母或 $ 或 _ 或中文
  • 后面的字符除了以上提到的还可以使用数字(首个字符不可以数字

if 语句

  • 语法
    • if(表达式){语句 1}else{语句 2}
    • {}在语句只有一句的时候可以省略
  • 变态情况
    • if 之后表达式的问题,有时候会写错成语句比如 a=1 这样
    • if 的嵌套问题
    • 缩进的问题

switch 语句

  • 语法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    switch (fruit) {
    case 'banana':
    //...
    break;
    case 'apple':
    //...
    break;
    default:
    //...
    }
  • 注意 break 的作用

短路逻辑

  • A && B
    • 如果 A 为真,执行 B
    • 如果 A 为假,执行 A
  • A || B
    • 如果 A 为真,执行 A
    • 如果 A 为假,执行 B

while 循环

  • 语法
    • while (表达式){语句}
    • 判断表达式的真假
    • 为真执行语句,再次判断表达式
    • 为假执行之后语句
  • do…while 会先执行一次再判断
  • 判断时要注意 JS 中浮点数问题,在 JS 中 0.1+0.2 不等于 0.3(控制台可试)

for 循环

  • 语法

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

    • 先执行表达式 1

    • 然后判断表达式 2

    • 为真,执行循环体,然后执行语句 3

    • 为假,直接退出循环,执行后面的语句

    • 经典题目

      1
      2
      3
      4
      5
      6
      for (var i = 0; i < 5; i++) {
      setTimeout(() => {
      console.log(i);
      }, 0);
      }
      //问:输出是什么

      答案是 5 个 5,关键点是 setTimeout 是一个异步函数,这里如果使用 let 就是 0 到 4 了(利用了 let 块级作作用域)

break 与 continue

  • break 会退出所有循环
  • continue 会退出当前一次的循环

label 语句

  • 是一个标签,在代码执行时可以实现跳转等功能

    1
    2
    3
    {
    a: 1;
    }

    此时这是一个代码块,a 是一个 label ,里面的语句是 1


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!