ES 新特性与 TypeScript、JS 性能优化
简答题
一、请说出下列最终的执行结果,并解释为什么?
var a = [];
for (var i =0; i< 10; i++) {
// i 是在全局作用域下的变量, 循环中, i被不断地重新赋值, 最终是 10即(window.i = 10)
a[i] = function () {
// 循环的时候,函数未执行
console.log(i)
}
}
a[6]() // 10 函数执行,当前的this指向window,window.i = 10
二、请说出下列最终的执行结果,并解释为什么?
var tmp = 123;
if (true) {
console.log(tmp) // 因为在最近的{}作用域里,有定义tmp,所以不会使用全局的tmp. 在这作用域里,这时候还没定义就使用所以会报错(未定义)
let tmp // tmp 是局部作用域, 就近原则
}
三、结合ES6新语法、用最简单的方式找出数组中的最小值
let arr = [12, 34, 32, 89, 4]
function getSmall (array) {
return array.reduce( (accumulator, currentVa