简单题
一、请说出下列最终的执行结果,并解释为什么
var a = [] for (var i=0;i<10;i++) { a[i] = function () { console.log(i) } } a[6]()
执行结果为:10 for 循环最后传入的是10
二、请说出下列最终的执行结果,并解释为什么
var tmp = 123; if(true) { console.log(tmp) let tmp }
执行结果:报错 在if中,let是块级作用域,应该先声明再使用,否则报错
三、结合ES6新语法,用最简单的方式找出数组中的最小值
var arr=[12,34,32,89,4] let fn = (arg) => Math.min(...arg) let min = fn(arr) console.log(min) // 4
四、请详细说明var,let,const三种声明变量的方式之间的具体差别
语法 | var a = 10 | let a = 10 | const a = 10 |
---|---|---|---|
提升 | 声明提升,使用undefined初始化 | 声明 未初始化 | 声明 未初始化 |
作用域 | 全局或函数作用域 | 块级作用域 | 块级作用域 |
初始化 | 可以仅声明不初始化 | 可以仅声明不初始化 | 必须在声明时初始化 |
重复定义 | 可 |