表达式与语句
- 1+2表达式的值为3
- add(1,2)表达式的值为函数的返回值
- console.log 表达式的值为函数本身
- console.log(3) 表达式的值为多少? undefined
语句
var a = 1 是一个语句
二者的区别
- 表达式一般都有值,语句可能有也可能没有
- 语句一般会改变环境(声明、赋值)
大小写敏感
- var a 和 var A 是不同的
- object 和 Object 是不同的
- function 和 Function 是不同的
标识符
规则
- 第一个字符, 可以是 Unicode 字母或 $ 或 _ 或中文
变量名
- var _ = 1
- var $ = 2
- var ______ = 6
- var 你好 = 'hi'
区块 block
{
let a = 1
let b = 2
}
- 常常与 if/for/while 合用
if 语句
语法
- if(表达式){语句1}else{语句2}
- {}在语句只有一句的时候可以省略,但不建议这样做
推荐写法
- 最推荐
if (表达式) {
语句
} else if (表达式) {
语句
} else {
语句
}
- 次推荐
function fn(){
if (表达式) {
return 表达式
}
if (表达式) {
return 表达式
}
return 表达式
}
switch 语句
语法
switch (fruit) {
case "banana":
...
break;
case "apple":
...
break;
default:
...
break;
}
问号冒号表达式
- 表达式1?表达式2:表达式3
&& 短路逻辑
- A && B && C && D 取第一个假值或D
- 并不会取 true/false
- 常用
console && console.log && console.log('hi')
|| 短路逻辑
- A || B || C || D 取第一个真值或D
- 并不会取 true/false
while 循环
语法
- while (表达式) {语句}
- 判断表达式的真假
- 当表达式为真,执行语句
- 当表达式为假,执行后面的语句
- 执行完再次判断表达式的真假
其他
- do...while
for 循环
语法糖
- for 是 while 循环的方便写法
语法
for(语句1;表达式2;语句3){
循环体
}
- 先执行语句1
- 然后判断表达式2
- 如果为真,执行循环体,然后执行语句3
- 如果为假,直接退出循环,执行后面的语句
break 和 continue
- 退出所有循环 和 退出当前一次循环
label 语句
foo: {
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);