JS 基本语法

226 阅读2分钟

今天打算重新过一遍JS的基本语法。

一、表达式和语句

表达式

An expressionis a phrase of JavaScript that a JavaScript interpreter can evaluate to produce a value.

表达式一定有返回值!

除了带运算符的表达式外,还有以下几类:[1]

  • 直接量表达式: 1.7, Javscript
  • 对象和数组初始化表达式:[],[1,2,3],{}
  • 函数定义表达式(注意如何区分函数定义与函数表达式):var foo = function () {};
  • 属性访问表达式:expression. identifier,expression[ expression]
  • 函数调用表达式:Math.max(x,y,z)
  • 创建对象表达式: new Object(), new Object
  • add(10,10)这个表达式的值为函数的返回值
  • console.log表达式的值为函数本身
  • console.log(1)这个表达式的值为undefined只是在控制台打印了3

语句

Expressions are evaluatedto produce a value, but statements are executed to make something happen.

重点在改变环境

但有一些语句是由有副作用(side-effect)的表达式构成的,比如:

  • 赋值和函数调用表达式(expression statement),a += 1;
  • 声明新的变量和定义函数时(declaration statements),let b = 3;

异同点

  • 表达式一般都有值,语句不确定
  • 语句一般会改变环境(声明、赋值)

二、标识符的规则

满足两点

  • 第一个字符,可以是Unicode字母或$_或中文
  • 后面的字符,除了上面所说,还可以是数字

三、if-else 判断

最推荐的写法

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

四、while-for 循环

while语法

while (表达式) { 语句 }

for是while的方便版本,语法是

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

五、break-continue 控制

都在循环体内,break用于退出本循环,continue用于跳过当前的循环,继续下一次

六、label的用法

语法为

label:
    statement

label

任何不属于保留关键字的 JavaScript 标识符。

statement

JavaScript 语句。break 可用于任何标记语句,而 continue 可用于循环标记语句。

示例

对于Chrome浏览器

{ foo:1 } 返回一个对象

{ foo:1; } 返回1

一道简单的面试题

问:上面这段代码是什么?

答:是一个代码块,里面有一个label,里面的语句为1。

七、参考链接


  1. 表达式(Expression)与语句(Statement)的区别 ↩︎