虾皮IM
变量提升
foo()
var foo = function(){}
这个是会报错的
作用域
var n = 1;
(function foo(){
n =2
console.log(n)
}())
console.log(n)
instanceof 实现
object.__proto__ === Object.prototype
function _instanceof(L,R){
let Ro = R.prototype
L = Object.getPrototypeOf(L)
while(L){
if(L === Ro) return true
L = Object.getPrototypeOf(L)
}
return false
}
http2.0 http3.0
http2.0基于http1.1,保持了长连接和
http3.0 即QUIC 基于UDP协议
异步
以下代码能否正常运行,点击事件能正常处理吗?
function foo(){
return Promise.resolve().then(foo)
}
foo()
事件循环
setTimeout(()=>{
console.log('8')
},0)
Promise.resolve().then(()=>{
console.log('7')
})
function fn1(){
return new Promise(resolve=>{
console.log('5')
resolve()
console.log('6')
})
}
async function fn2(){
console.log('1')
await fn1()
console.log('2')
}
fn2()
console.log('3')
为什么React函数组件需要引入React
JSX将代码编译为React.createElement()
形式,所有需要引入React
vue 为什么data 用函数声明而不是对象
v8的JS执行过程
electron底层原理
tree sharking 实现原理
ESM和CJS区别,为什么ESM可以tree sharking
应该回答的是ESM不能动态加载,而是需要编译时加载,所以可以做tree sharking