一、表达式与语句
var a = 1+2
是一个语句
1+2是表达式
两者区别
- 表达式一般有值,语句可能有可能没有
- 1+2表达式的值为3
- add(1,2)表达式的值为函数的返回值
- console.log表达式的值为函数本身
- console.log(3)表达式的值为返回值undefiend
2.语句一般会改变环境(声明、赋值)
注意事项:大小写敏感
二、标识符的规则
- 第一个字符可以是Unicode字母或$或_或中文
-
后面的字符,除了上面所说,还可以有数字
如输入以下内容就会报错
三、if else语句
- 语法
if(表达式){语句1}else{语句2},()不能省略,{}在语句只有一句时可省略,但不建议这样做,如:
a=1
if(a===2)
console.log('a')
console.log('a等于2')
结果是a等于2,因为省略了{},if后只包含了console.log('a'),所以最好不要省略
- 变态情况
表达式里可以非常变态,如a=1
语句1、2可以非常变态,如嵌套if else
四、while、for语句
while循环,当...时
- 语法
while(表达式){语句}
判断表达式的真假,如为真,执行语句,执行完再判断表达式的真假
如为假,执行后面的语句
使用while有时会进入死循环
如
var a=0.1
while(a!==1){
console.log(a)
a=a+0.1}
这是个死循环,因为浮点数不精确,达不到a=1的时候
for循环
- 语法糖
for是while循环的方便写法 - 语法
for(语句1;表达式2;语句3){
循环体
}
先执行语句1,然后判断表达式2,如果为真,执行循环体,然后执行语句3
如果为假,直接退出循环,执行后面的语句
五、break和continue
break是退出当前所有循环,且是退出离它最近的for
for(var i=0; i<10; i++){
if(i%2===1){
break
}
}
i的值是1,因为在i<10的范围内,1是第一个单数
continue是退出当前一次循环,相当于next的意思
for(var i=0; i<10; i++){
if(i%2===1){
continue
}else{
console.log(i)
}
}
i的值是0、2、4、6、8
六、label语句
用的比较少,面试时会碰到
- 语法
foo:{
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
- 面试
{ foo: 1}是什么?
foo是一个label,:1是语句