今天打算重新过一遍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。