1. 什么是表达式和语句
区别(下面两句话不是绝对的)
- 表达式一般都有值,语句可能有也可能没有
- 语句一般会改变环境(声明、赋值)
表达式
- 例子:
- 1+2表达式的值为3
- add(1,2)表达式的值为函数的返回值(只有函数有返回值)
- console.log表达式的值为函数本身
- console.log(3)表达式的值为多少?值是undefined,打印出来的东西是3
语句
- var a=1 是一个语句
2. 标识符的规则
- 第一个字符,可以是Unicode字母或$或_或中文
- 后面的字符除了上面的几种,还可以是数字
3. if else 语句
- 语法:
if(表达式1){
语句1
}else if(表达式2){
语句2
}else{
语句3
}
- 解释:如果表达式1成立,进入语句1;否则如果表达式2成立,进入语句2,否则执行语句3
4. while for 语句
while语句
语法: while(表达式){语句}
-
解释:
-
判断表达式的真假
-
当表达式为真,执行语句,执行完在判断表达式的真假
-
当表达式为假,执行后面的语句 例:
var a=0.1 //初始化 while(a!==1){ //判断 console.log(a) //循环体 a=a+0.1 //增长 } // 以上代码会变成死循环,因为浮点数不精确导致的
for循环
语法:
for(语句1;表达式2;语句3){ 循环体 }
- 解释:
- 先执行语句1
- 然后判断表达式2
- 如果为真,执行循环体,然后执行语句3
- 如果为假,直接退出循环,执行后面的语句 略写语法: for(;表达式2;语句3){循环体}
例子1:
for(var i=0;i<5;i++){
console.log(i)
}//打印出了0 1 2 3 4 正常执行的话最后那个i会变成5
例子2: for(var i=0;i<5;i++){ setTimeout(()=>{ console.log(i) },0) }//打印出了五次5 意思就行没执行完一个for循环放一个闹钟在那,一共放了五个闹钟,等到闹钟响了之后开始打印i,这个时候的i都变成了5
如何解决上面的问题呢?
将var改成let
for(let i=0;i<5;i++){
setTimeout(()=>{
console.log(i)
},0) //打印出了0 1 2 3 4
5. break continue
break 退出整个for循环,如果是两次for循环,写在里面就退出里面的for循环
continue 退出当前一次循环,继续下一次循环
例子1:
for(var i=0;i<10;i++){
if(i%2===1){
break
}
}// i的值是1
例子2:
for(var i=0;i<10;i++){
if(i%2===1){
continue
}else{
console.log(i)
}
}// 打印出了0 2 4 6 8
例子3:
for(var i=0;i<10;i++){
for(var j=101;j<110;j++){
if(i===5){
break
}
}
}//打印出了0 1 2 3 4 5 6 7 8 9
6. label
语法:
foo:{
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2)
以上输出了1 2
面试:
在浏览器里面
{
foo:1;
}
就是个标签label,里面有个foo,值为1
前面加上var a={ foo:1;} 就是个对象了