JS-4:JS语法

111 阅读3分钟

1 表达式与语句

  • 表达式一般都有值,语句可能有也可能没有,表达式 1+2 的值为3;

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

    var a=1 a就是环境;

  • 返回值与值不同;

  • 只有函数有返回值,函数的值就是函数的返回值:

    add (1,2) 表达式的值为函数的返回值;
    console.log表达式的值为函数本身,即console.log;
    console.log(3)表达式的值为函数的返回值,即undefined

2 JS语句特点

  • JS大小写敏感

  • 大部分空格没有实际意义,只要不影响断句;

  • 加回车大部分时候也不影响;

  • 只有一个地方不能加回车,就是return后面:

  function fn(){
     return 3 
  }
  fn()
  返回3
 function fn(){
     return 回车
     3 
  }
  fn()
  返回undefined

3 标识符

取名字时用到的符号就叫标识符,规则:

  • 第一个字符,可以是字母或$或_或中文;后面的字符,除了这几个外,还可以有数字;

  • 变量名是标识符; var _=1

4 注释

  • 不好的注释

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

    • 踩坑注解;
    • 注明为什么代码会写的这么奇怪,遇到了什么bug;

5 if else 语句

5.1 语法

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

  • {}在语句只有一句的时候可以省略,不建议这样做;

  • 一个语句与一行不是一个意思,语句中间用' ;'隔开,代表是两个句子,用' ,'隔开代表是一个句子,中间没有符号,也代表两个句子;

  • 变态情况:

1、省略了{},逗号和分号的区别:

image.png

5.2 写法

  • 推荐使用的写法

image.png

  • 次推荐写法

image.png

  • switch语句

image.png

  • 省略break后,执行完case2,会继续执行case4,而不是退出语句;

image.png

6 运算符

  • 问号冒号表达式(三元运算符)

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

  • && 短路逻辑

    • A && B && C && D 取第一个假值或D;

    • 并不会取true 或 false image.png

  • || 短路逻辑

    • A || B || C || D 取第一个真值或D
    • 并不会取true 或 false

7 while 循环

image.png

while语句没有返回值

  • 浮点数不精确
var a=0.1
while(a != 1.0){
  console.log(a)
  a = a + 0.1
  }

此代码会造成死循环;

image.png

8 for 循环

image.png

  • for循环中有setTimeout()时,先执行循环,循环完成后再执行setTimeout,当退出循环时,i===5,所以后面执行5次setTiemout的值都打印5;

image.png

  • for循环在面对let时,会有单独的逻辑:每执行一次循环体,都会执行一次setTimeout;

image.png

9 break 和 continue

  • break退出最近的一个for循环;
  • continue退出当前一次循环,执行下一条语句,可看成是next的意思;

image.png

image.png

10 label 语句

image.png

它是一个代码块,foo是一个标签,标签里面只有一句话,这句话就是 1。

image.png

在chrome中,foo:1后面不加分号,它是一个对象,这是错误的,它本身就是一个标签

当前面加上var a =时,就是一个对象:

image.png