1.什么是表达式和语句
- 表达式:
1+2 //值为3
add(1,2) //值为函数的返回值,只有函数有返回值
console.log //值为函数本身
console.log(3)//值为undefined
- 语句:
let a=1
二者的区别:
- 表达式一般都有值,语句可能有也可能没有
- 语句一般会改变环境(比如:声明、赋值)
- 上面两句话不是绝对的
2.标识符的规则
第一个字符,可以是Unicode字符、$、_、中文,后面的字符,除了伤命所说,还可以是数字
变量名是标识符
let _ = 1
let $er = 2
let 姓名 = "";
3.if else 语句
语法:
- if(表达式){语句1} else {语句2 }
- {}在语句只有一句的时候可以省略,不建议这样做
- 使用最没有起义的写法(程序员戒律)
推荐写法:
if(表达式){
语句
} else if (表达式){
语句
}else{
语句
}
function fn(){
if(表达式){
return 表达式
}
if (表达式){
return 表达式
}
return 表达式
}
4.while for 语句
while 语法:
while(表达式){循环体}
执行顺序:
判断表达式的真假
当表达式为真时,执行循环体,执行完再判断表达式的真假
当表达式为假,直接退出循环,执行后面的语句
for循环语法:
for(语句1;表达式2;语句3){
循环体
}
执行顺序:
先执行语句1,然后判断语句2,如果为真,执行循环体,然后执行语句3;如果为假,直接退出循环,执行后面的语句
5.break continue
break:退出所有循环
continue:退出当前一次循环
6.label标签
语句的前面可以有标签,相当于定位符,用于跳转到程序的任意位置。
用法:label: 语句
foo:{
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2)
//1
//2
标签和break语句配合使用,直接跳出双层循环,如果break语句后面不适用标签,则只能跳出内层循环
top:
for(var i=0;i<3;i++){
for(var j=0;j<3;j++){
if(i===1 && j===1) break top;
console.log('i=' + i+",j="+j)
}
}
//i=0,j=0
//i=0,j=1
//i=0,j=2
//i=0,j=0
{ foo :1;}
//1