一、 var 和 let const 的区别
var 为 ES5 语法
// let const 作用域为块级作用域
var a = 1
let b = 2
{
var a = 3
let b = 4
}
console.log('a', a) // 3
console.log('b', b) // 2
// for循环创建了块级作用域
for (var i = 0; i < 10; i++) {
var j = i + 1
}
console.log(i, j) // 10 10
for (let n = 0; n < 10; n++) {
let m = n
}
console.log(m, n) // 报错
二、typeof 返回哪些类型
- 值类型、引用类型(object)、函数(function)。
- 值类型包括 number, string, boolean, undefined, bigint, symbol。
三、强制类型转换和隐式类型转换
- 强制类型转换 parseInt, parseFloat, toString,Number(), String(), Boolean(),隐式类型转换 if、逻辑预算、==、+拼接字符串。
四、数组 pop push unshift shift
都会改变原数组:
- pop() 从数组删除最后一个元素,并返回该元素的值。
- shift() 方法从数组中删除第一个元素,并返回该元素的值。
- push() 会将值放入数组最后一项,并返回数组新长度。
- unshift()将指定元素添加到数组开头,并返回数组新长度。
五、闭包是什么?有何特性?有何影响
一个函数用到了外部的变量,那么这个函数加这个变量就组成了闭包。
闭包是作用域应用的特殊情况,有两种表现
- 函数作为参数被传递。
- 函数作为返回值。
- 自由变量的查找应该从函数定义的地方,向上级作用域查找。
- 影响:变量会常驻内存,得不到释放(不能说会造成内存泄漏,内存泄漏是应被释放的没有释放,但是闭包是可能会被用到的,需要手动释放)。
请登录后发表评论
注册
社交账号登录
停留在世界边缘,与之惜别