JS的数据类型有哪些
基本数据类型:String Number boolean unll undefinded symbol bigint
引用数据类型 Object
原型链是什么?
回答概念题:答题思路为大概念化成小概念(分割)、抽象化成具体(举例)
Myself:这个问题不太好回答、我举个例子吧
let x= {} 这个a会具有一个隐藏的属性 这个隐藏的熟悉会指向Object.prototype
也就是 x 的原型是Object.prototype 也可以说 Object.prototype是 x 的原型
现在 a = [] 此时a具有一个隐藏的属性,这个隐藏的属性会指向Array.prototype
也是 a 的原型是Array.prototype 可以说是Array.ptototype是a的原型
目前 这个数组a 和之前的对象x 描述的是一样的
但是Array.prototype也有一个隐藏的属性 指向的是 Object.prototype
现在一来 a 就有两层原型 :
a 的原型是 Array.prototype
a 的原型的原型是 Object.prototype
于是这个隐藏的属性就形成了一个链条 这个链条就叫原型链
JS中的new做了什么
1、创建了一个临时对象
2、绑定原型
3、this指向了这个临时对象
4、执行构造函数
5、返回这个临时对象
JS的立即执行函数是什么
声明一个函数,然后立即调用这个匿名函数、就是立即执行函数
立即执行函数的作用:创建了一个独立的作用域,这个作用域里面的变量,外部访问不到(避免了变量污染)
JS的闭包是什么 怎么用?
1、闭包是隐藏局部变量的一种技术
在JavaScript中 所有函数都能访问上层作用域 通常使用 函数 嵌套 函数 使里面的函数引用外部的变量
然后外部函数 以对象的形式把内部函数返回出去 这样就可以使函数外部访问内部函数的数据
功能:在函数外可以访问函数内部的数据
缺点:用的不好容易造成内存泄漏 IE老版本浏览器中
如何实现类
JS如何实现继承
JS的事件循环eventLoop
1、
await/async
1、await 后面所跟上的 js代码 都会立即执行 如果包装的是一个promise就不会new promise
如果不是一个 promise 就会 new promise 然后作为第一个参数传进去