表达式和语句
- 表达式一般都有返回值,语句一般会改变环境(声明、赋值),但是不绝对。
表达式:
console.log()
add(a,b)
语句:
var a = 1
标识符的规则
- 第一个字符,可以是 Unicode 字母或 $ 或 _ 或中文。
- 后面的字母除了上述规则,还可以有数字,即数字只能从第二位开始。
if else 语句
- 语法:if(表达式){语句} else {语句};{} 在语句中只有一句的时候可以省略,但不建议这样做。
- 几种特殊情况:表达式 a=1;语句1 嵌套 if else;语句2 嵌套 if else;缩进。
示例1:
var a = 1 ;
if(a = 1) // a=1错误。”=“在编程里面的意思是赋值;”===“在编程里面的意思是等于。
console.log("打印") // 只有一行时可以删略{},但最好不要删略。
示例2:
var a = 2;
if( a = 1 )
console.log("打印1")
console.log("什么也不打印")
返回值:什么也不打印。if 只对下一个语句有效,console.log("什么也不打印")
是一个新的语句,不属于 if 语句。
示例3:
var a = 2;
if( a = 1 )
console.log("打印1");console.log("什么也不打印")
返回值:什么也不打印。分号代表语句已结束,console.log("什么也不打印")
是一个新的语句,不属于 if 语句。
示例4:
var a = 2;
if( a = 1 )
console.log("打印1"),console.log("什么也不打印")
返回值:undefined。逗号代表语句还没有结束,系统无法识别console.log("打印1"),
console.log("什么也不打印")。
- if else 语句比较好的两种写法
推荐1:
if ( 表达式 ){
语句
} else if ( 表达式 ){
语句
} else {
语句
}
推荐2: // 只可用于函数
function fu () {
if ( 表达式 ){
return 表达式
}
if ( 表达式 ) {
return 表达式
}
return 表达式
}
- while for 语句
- while 循环语法:while(表达式){语句};用于判断表达式的真假;当表达式为真,执行语句,执行完后再判断表达式的真假;当表达式为假,执行后面的语句。
- for 循环语法:for 是 while 的方便写法。for(语句1;表达式2;语句3){循环体}。执行逻辑:先执行语句1,然后执行判断表达式,如果为真,执行循环体,然后执行语句3;如果为假,直接退出循环,然后执行后面的语句。
- break 和 continue 的区别。break 是退出当前层级的所有循环; continue 是退出当前一次循环。
i = 0;
n = 0;while (i < 5) {
i++;
if (i === 3) {
continue;
}
n += i;}
// n output: 1,3,7,12
label 语句
- 可以和 break 或 continue 语句一起使用,标记就是在一条语句前面加个可以引用的标识符。
示例1:
let str = '';
loop1:
for (let i = 0; i < 5; i++) {
if (i === 1) {
continue loop1;
}
str = str + i;
}
console.log(str);
// expected output: "0234"
示例2:
{
foo: 1
}
问:上面是什么东西?
答:这是一个代码块,其中,foo 是标签,标签里面的内容是1。
示例3(chrome):
{foo:1}
返回值:{foo: 1}
{foo:1;}
返回值:1
示例4(firefox):
{foo:1}
返回值:1
替代 if else 语句的表达式或逻辑
问号冒号表达式
✔ 语法:表达式?表达式2:表达式3
示例:
a > b ? a : b // 如果 a > b ,返回 a ,否则,返回 b
&& 短路逻辑
✔ 语法:A && B && C && D。
✔ 逻辑:如果一个表达式为真,就继续执行下一个表达式,最后返回第一个假值或者 D,并不会取 true / false。
|| 短路逻辑
✔ 语法:A || B || C || D
✔ 逻辑:与 && 短路逻辑相反。如果一个表达式的值为假,就继续执行,最后返回第一个真值或者 D,并不会取 true / false。