一、表达式和语句
- 表达式
- 1+2表达式的值是3
- add(1,2)表达式的值是函数的返回值,函数的返回值就是函数的值
- console.log表达式的值是函数本身
- console.log(3)表达式的值是undefined,因为它返回的是undefined,打印出来的是3
- 语句
- var a=1;是一个语句,值是undefined
- 二者的区别
- 表达式一般都有值,语句可能有也可能没有
- 语句一般会改变环境,(声明、赋值)
- 上面两句话并不是绝对的
二、标识符的规则
规则:第一个字符,可以是Unicode字母 或者 $ 或者 _ 或者中文
后面的字符,可以有数字
举例:
var _ = 1
var $ = 2
var ______ = 6 //这种写法不规范,下划线最多两个,不然看不清有几个
var 你好 = 'hi'
三、if…else语句
语法:
if(表达式){
语句1
}else{
语句2
}
变态情况:
var a = 1
if(a === 2)
console.log('a')
console.log('a等于2')
规则:使用最没有歧义的写法
if(表达式1){
语句
}else if(表达式2){
语句
}else{
语句
}
四、while语句
语法:
while(表达式){
语句1
}
流程:
1.判断表达式真假
2.表达式为真,执行语句,执行完再判断表达式真假
3.当表达式为假,执行后面的语句
五、for循环
语法:
for(语句1;表达式2;语句3){
循环体
}
流程:
1.先执行语句1
2.判断表达式2
3.如果为真,执行循环体,然后执行语句3
4.如果为假,直接退出循环,执行后面的语句
变态情况:
for(var i=0;i<5;i++){
setTimeout(()=>{
console.log(i)
},0)
}
请问输出结果是什么?
循环体内的setTimeout会在for执行完成之后执行,所以是输出5(5个)
六、break和continue
七、label
变态情况:
{
foo:1
}
上面是什么东西?
是个标签,内容是1