表达式和语句
表达式是一组代码的集合,它返回一个值。接下来我们来举例说明
- 1 + 2 表达式的值为 3
- add(1, 2) 表达式的值为函数的返回值
- console.log 表达式的值为函数本身
- console.log(3) 表达式的值 为 undefined ,不代表返回值。
问号冒号表达式:
n>0? n:-n
等同于
if (n>0) {console.log(n)
}else{console.log(-n)
}
var a=1是一个语句
- 一般情况下语句会改变环境(赋值或说明)
- 一般情况表达式会有值,语句一般没有
- 上两句话不是绝对的
- return 后面不可加回车
标识符的规程
- 第一个字符可以是Unicode字母或者$或者_或者中文
- 第二字符除了可为上一条中提到的还可以是数字
例如
- var $=1
- var _=2
- vra 豪豪=3
if else 语句
if (表达式){语句1} else {语句2}
var a=2
if (a===2){console.log(2)}
else{}
- {}里可以继续套if else
- if(a=2)这是错误的,=是直接赋值的意思,可以把数字写在前面方便系统报错
还可以用一下写法
function fn(){
if (表达式) {return 表达式}
if(表达式){return}表达式}
return{表达式}
}
&&短路逻辑
A&&B&&C&&D 且运算,当前一个为真值时计算下一个值,一直到第一个假值或者D
||短路逻辑
A||B||C||D 或运算,当前一个为假值时计算下一个值,一直到第一个真值或者D
a=a || 100
相同与
if (a){a=a
}else {a=100
}
while循环
while (表达式){语句} 判断表达式的真假 表达式为真时,执行语句,并重新判断真假 表达式为假时,弹出循环执行后面语句
特殊举例
var a=0.1
while (a!==1){
console.log(a)
a=a+0.1
}
这个例子会无限循环因为浮动数的原因使得a只会接近1而不是1
for循环
for是while的便洁写法
语法:for(语句1;表达式2;语句3){ 循环体 }
- 先执行语句1
- 判断表达式2
- 若为真,进入循环体,然后执行语句3
- 若为假,退出循环体,执行后面语句
特殊例子
for (var a=1;a<5;a++){
setTimeout(() => {
console.log(a);
}, 0);
}
这个例子会打印出5个5,因原在于延迟打印,此时的a由于循环已经赋值为5了,所以5次的打印的a值都为5。
打印值的取值取决于调用函数的时间
如果var替换成let,则取值1,2,3,4,5
break和continue
break是退出所有循环 contimue是退出本次循环 举例
for(var a=0;a<10;a++){
if(a%2===1){
break
}
}
此时当a=1是就会退出循环,打印值1
for(var a=0;a<10;a++){
if(a%2===1){
continue
}else{
console.log(a)
}
}
此时打印值为2/4/6/8
label
语法
foo:{
console.log(a)
break foo
console.log('本行不会输出‘)
}
console.log(-a)
注意:{foo: 1} 在浏览器中,这就是一个标签,值为 1。只有 var a = {foo: 1} 时,才是一个对象。