js语句和表达式
两者的定义区别:一个表达式一般会产生一个值,它可以放在任何需要一个值的地方;语句则是由分号分隔的句子或命令。如果在表达式后面加上一个“;”分隔符,这就被称为“表达式语句”。它表明“只有表达式,而没有其他语法元素的语句”。
两者的功能区别:表达式经常用作作为一个函数调用的参数,它可以放在任何需要一个值的地方。而语句则是一个行为,循环语句和if语句就是典型的语句,一个程序是由一系列语句组成的。语句一般会改变环境。
是否支持嵌套方式的区别:在javascript中所有表达式都有返回值,表达式均可以嵌套在别的表达式中,但语句不行,语句只能独立出现。
标识符的规则
- 第一个字符,可以是Unico字母或$或_或中文(不能是数字)
- 后面的字符,除了以上,还能接数字
if else 语句
- 语法
if(表达式){
语句1
}else{
语句2
}
判断表达式是否成立,成立执行语句1,否执行语句2。
- 推荐写法
if(表达式){
语句
}else if(表达式){
语句
}else{
语句
}
- &&短路循环
A&&B&&C&&D
取第一个假值或D(不取true/false)
- ||短路循环
A||B||C||D
//常用 A=A||B
取第一个真值或D(不取true/false)
- 三元运算符 ?: (问号冒号表达式)
JavaScript 还有一个三元运算符(即该运算符需要三个运算子)?:,也可以用于逻辑判断。
(条件) ? 表达式1 : 表达式2
上面代码中,如果“条件”为true,则返回“表达式1”的值,否则返回“表达式2”的值。
var even = (n % 2 === 0) ? true : false;
上面代码中,如果n可以被2整除,则even等于true,否则等于false。它等同于下面的形式。
var even;
if (n % 2 === 0) {
even = true;
} else {
even = false;
}
示例
function max(a,b){
if (a>b)return a ;
else return b ;
}
//可以简写为
function max(a,b){
return a>b return ? a: b
}
function abs(n){
return n>0 return ? n: -n
}
//取绝对值
while for循环
while循环
语法
while(表达式){语句}
判断表达式真假,若表达式为真,执行语句,再判断和执行。
for循环
语法
for(语句1;表达式2;语句3){
循环体
}
- 先执行语句1
- 然后判断表达式2
- 如果为真,执行循环体,再执行语句3(因此最后还会有一次执行)
- 如果为假,直接退出循环,执行后面语句
break和continue
continue是结束当前的循环,而break是结束整个循环体。下面例子看看。
continue:
for (let i = 0; i < 5; i++) {
if(i == 3) {
continue;
}
console.log(i);
}
输出结果:
0
1
2
4
break:
for (let i = 0; i < 5; i++) {
if(i == 3) {
break;
}
console.log(i);
}
输出结果:
0
1
2
可以看出,break在i等于3的时候,退出了整个循环体了;而continue在i等于3的时候,只是没有执行当前循环剩下的未执行的语句,然后直接进行下一次循环。
label
在 JavaScript 中,使用 label 语句可以为一行语句添加标签,以便在复杂结构中,设置跳转目标。一般不会用,但面试会考。
语法格式如下:
label : states
label 为任意合法的标识符,但不能使用保留字。然后使用冒号分隔签名与标签语句。
常见问题:
{
fo:1
}
并不是一个对象,而是一个label,语句是1。