表达式和语句
表达式
1+2表达式的值为3
add(1,2)表达式的值为函数的返回值
console.log表达式的值为函数本身
语句
区别
表达式一般都有值,语句可能有也可能没有
语句一般会改变环境(声明、赋值)
上面两句话并不是绝对
标识符的规则
规则
第一个字符,可以是Unicode字母或$或_或中文
后面的字符,除了上面所说的,还可以是数字
var 9$ 是不符合规则的命名,会报错,第一个字符不能是数字
以下命名都是符合规则的:
var _ = 1
var $ =2
var 你好 =’hi’
if else语句
语法
if (表达式) {语句1} else {语句2}———如果表达式成立,执行语句1.否则,执行语句2
变态情况:
a = 2if(a = 1){console.log('a是1')}else{console.log('a不是1')}
结果是打印出’a是1’.因为=不是等于的意思,是赋值的意思。a=1表示a赋值为1,所以打印出a是1。应该改为a === 1,才会打印出’a不是1’
推荐写法
if(表达式){
语句
}else if{
语句
}else{
语句
}
while循环
语法
while(表达式){语句}
判断表达式的真假
当表达式为真,执行语句。执行完再判断表达式的真假
当表达式为假,执行后面的语句
例子
var i =0while(i < 10){console.log(i)i++}
变态
var a = 0.1while(a !== 1){console.log(a)a=a + 0.1}
这样会死循环。因为JS数字式以浮点数存储,加起来不一定是整数
for循环
语法
例子
for(var i = 0;i < 10;i++){console.log(i)}
变态
for(var i = 0; i < 5;i++){}setTimeout() => {console.log(i)}
结果打印出的是5。因为for语句的逻辑是
先执行语句1
然后判断表达式2
如果是真,执行循环体,然后执行语句3
如果为假,直接退出循环,执行后面的语句
题目设置了时间。就是说,当i=5的时候,没有执行循环体,然后去执行语句3也就是i++了。
break和continue
区别
break(退出所有循环)和continue(退出当前一次循环)
例子1:
for(var i=0;i<10;i++){if(i%2===1)//i除以2的余数是一,就是单数啦break}
变态:
for(var i =0;i<10;i++){for(var j = 101;j < 111; j++){if(i===5)break}console.log(i)}
打印出来是0,1,2,3,4,5,6,7,8,9.因为break值退出了j里面的循环,i的循环没退出
例子2:
for(var i=0;i<10;i++){if(i%2===1)//i除以2的余数是一,就是单数啦continue}else{console.log(i)}
输出是i的值0,2,4,6,8。因为当i为单数的时候退出当前循环,所以剩下来的都是双数
label
{
foo: 1
}
foo是一个lable,语句是一个1
