4.1 Js有哪些数据类型?
基本数据类型: Undefined、Null、Boolean、Number、String、Symbol、BigInt。 引⽤数据类型:object,function,array
4.2 数据类型检测的⽅式有哪些?
然后判断数据类型的⽅法⼀般可以通过:typeof、instanceof、constructor、toString四种常⽤⽅法
4.4 谈谈你对作⽤域和作⽤域链的理解
作⽤域规定了变量能够被访问的 ‘范围’,离开了这个范围变量便不能被访问 作⽤域分为: 局部作⽤域 函数作⽤域 ---在函数⾥ 块级作⽤域 let/const 全局作⽤域 ---整个script标签⾥ 作⽤域链 嵌套关系的作⽤域串联起来形成了作⽤域链 作⽤:作⽤域链本质上是底层的变量的查找机制 函数被执⾏时,会优先查找当前函数作⽤域中的变量 如果当前作⽤域中查找不到会逐级向上查找⽗级作⽤域直到全局作⽤域
4.6 如何改变this指向
js中允许改变函数中this的指向,有3个⽅法可以动态指定普通函数中this的指向
call 使⽤call⽅法调⽤函数,同时指定被调⽤函数中this的指向
使⽤场景:Object.prototype.toString.call(数据) 检测数据类型
apply 使⽤apply⽅法调⽤函数,同时指定被调⽤函数中this的值
使⽤场景: 求数组的最⼤值/最⼩值
bind bind()⽅法不会调⽤函数,但是能改变函数内部this的指向
使⽤场景 不需要调⽤函数,但是⼜想改变函数内部this的指向