1.switch调度值
当else if 过多时,为了以更直接的方式来表达这种“调度”,人们设计了一个叫作switch的结构,不幸是,JavaScript用于此的语法有点笨拙,一连串的if语句可能看起来更好,使用switch的时候要小心,因为很容易忘记写break,这将导致程序执行你不希望执行的代码。
2.函数作用域
const fn = function(){},以这种方式创建的函数的函数体必须始终用大括号括起来,即使它只包含一个语句。
var 在不是函数作用域的情况下,它的作用域是全局的。比如:
let a = 2
if(true){
let y = 1
var z = 3
console.log(y+z)
}
console.log(a+z) // z是可见的,y是不可见的
3.闭包
function fn(n){
let value = n;
return () => value;
}
let sum = fn(3)
console.log(sum()) //3
console.log(sum(4)) //3
调用fn并创建一个将其sum参数定为4的环境,它的返回的函数(存储在sum中)会记住此环境,所以输出的还是3