JS语法

84 阅读1分钟

表达式和语句

表达式

1+2 值为3
add(1,3) 值为函数返回值
console.log 值为函数本身
console.log(3) 值为undefined

语句

var a = 1 赋值语句

两者区别

  • 表达式一般都有值,语句可能有值
  • 语句一般不会改变环境(说明赋值)
  • 上面两句话并不绝对

return

return 后面不能加换行

注释

两种方式

// 单行注释
/**/ 多行注释

多写采坑注释

if else

条件判断

if(true/false){
    //为真的逻辑
}else{
    //为假的逻辑
}

不写花括号只会管第一条语句

if(true)
    console.log('这里会执行');
    console.log('这里不会执行');

while

判断括号中的条件为true则执行

while(){
    
}

面试题

以下代码是否会死循环

let a = 0.1
while(a!==1){
    a+=0.1
}

由于与js浮点数相加得到的可能是一个不精确的值例如

0.1 +0.2 = 0.30000000000000004
0.7+0.1 = 0.7999999999999999

这就导致a无法等于1就会出现死循环

for

for循环将初始值,判断条件,变量的值的改变都写在括号中

for(let i = 0;i<10;i++){
    
}

执行顺序

  1. 首先声明变量 i
  2. 然后判断条件是否满足
  3. 执行循环体
  4. 自增
  5. 一直在2、3、4步骤重复直到条件不成立。

break

默认用来结束当前循环,可指定一个label来指定要跳出到那个代码块。

aa:for(let i = 0;i<10;i++){
    console.log(i)    
     for(let j = 0;j<100;j++){   
    	if(j===10){
            break aa;	
        }
    }
}

0//输出0

j===10的时候跳到aa的代码块并结束循环。

continue

结束本次循环用法和break一样。

总结

  • 不要相信人类,只要是人类就会犯错
  • 不要使用有歧义的写法