表达式和语句
表达式
1+2表达式的值为3。
add(1,2)表达式的值为函数的返回值。
console.log表达式的值为函数本身。
console.log(3)表达式的值为 undefined,打印出来的才是3。
语句
var a =1 是一个语句
二者的区别
- 表达式一般都有值,语句可能有也可能没有
- 语句一般会改变环境(声明、赋值)
- 上面两句话并不是绝对的
- 注意
- 大小写敏感
- 大部分空格没有实际意义(大部分时候加回车也不影响,但return后不能加回车)
标识符的规则
- 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
- 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9
if else 语句
语法
if (表达式){语句1}else{语句2}
例如:
if (m === 3) {
// 满足条件时,执行的语句
} else {
// 不满足条件时,执行的语句
}
最推荐的写法
if (表达式 ) {
语句
} else if (表达式 ) {
语句
} else {
语句
}
次推荐写法
function fn(){
if (表达式 ) {
return 表达式
}
if ( 表达式) {
return 表达式
}
return 表达式
}
其他条件语句
问号冒号表达式
语法: 表达式1?表达式2:表达式3
function max(a,b){
if(a>b)return a ;
else return b;
function max(a,b){
return a>b ? a:b
以上两段代码表达相同
&&短路逻辑
A && B && C && D 取第一个假值或D 并不会取true/false
例如:
console && console.log && console.log('hi')
// hi
||短路逻辑
A || B || C || D取第一个真值或D 并不会取true/false
例如:
a = a ||100
if(a){
a=a
}else{
a=100 //保底值
}
while for 语句
while 循环
语法:while (表达式){语句}
- 判断表达式真假
- 当表达式为真,执行语句,执行完再判断表达式的真假
- 当表达式为假,执行后面的语句
for 循环
语法:
for(语句1;表达式2;语句3){
循环体
}
- 先执行语句1
- 然后判断表达式2
- 如果为真,执行循环体,然后执行语句3
- 如果为假,直接退出循环,执行后面的语句 例如:
var x = 3;
for (var i = 0; i < x; i++) {
console.log(i);
}
// 0
// 1
// 2
- 所有
for循环,都可以改写成while循环。上面的例子改为while循环,代码如下:
var x = 3;
var i = 0;
while (i < x) {
console.log(i);
i++;
}
break continue
- break: 退出所有循环
- continue: 退出当前一次循环
例如:
break:
var i = 0;
while(i < 100) {
console.log('i 当前为:' + i);
i++;
if (i === 10) break;
}
上面代码只会执行10次循环,一旦i等于10,就会跳出循环。
continue:
var i = 0;
while (i < 100){
i++;
if (i % 2 === 0) continue;
console.log('i 当前为:' + i);
}
上面代码只有在i为奇数时,才会输出i的值。如果i为偶数,则直接进入下一轮循环。
label
JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下:
label:
语句
标签也可以用于跳出代码块:
foo: {
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
// 1
// 2
下面是什么东西
{
foo :1
}
foo是一个label,语句是1