js基础面试

js基础面试

  • typeof 能判断哪些类型
Object function number boolean undefined string symbol
const n = null;//引用类型,指向空的地址
  • 何时使用=== 何时使用==
===判断值跟类型
==判断值
一般除了==null之外,其他用===
  • window.onload和DOMContentLoaded的区别

  • js创建10个标签,点击额时候弹出对应的序号

  • 手写节流trottle、防抖debounce
考点:性能、体验优化

  • Promise解决了什么问题?

  • 手写深拷贝
function deepClone(obj = {}) {
    if (typeof obj !== 'object' || obj == null) {
        // obj 是 null ,或者不是对象和数组,直接返回
        return obj
    }
    // 初始化返回结果
    let result
    if (obj instanceof Array) {
        result = []
    } else {
        result = {}
    }
    for (let key in obj) {
        // 保证 key 不是原型的属性
        if (obj.hasOwnProperty(key)) {
            // 递归调用!!!
            result[key] = deepClone(obj[key])
        }
    }
    // 返回结果
    return result
}
  • 值类型和引用类型
const c = true + '10';//true10
null == undefined //true
false == 0/'';//true
0 == '';//true
null == undefined;//true
null == 0;//false
null == '';//false
0 == '';//true
undefined == '';//false
undefined == 0;//false
除了 == null外,其他一律用===
 obj.a == null

str instanceof Array//判断变量熟不是数组(原型链判断)
function print(fn){
    const a = 200;
    fn();
}
const a = 100;
function fn(){
    console.log(a);
}
print(fn);//输出100 自由变量的差找,是在函数定义的地方,向上级作用域查找,而不是在执行的地方
  • this
this去什么值是在函数调用的时候决定的
》》》箭头函数取决于它的上一级作用域

js 添加 debugger自动断点

  • window.onload和DOMContentLoaded区别
在js中DOMContentLoaded方法是在HTML文档被完全的加载和解析之后才会触发的事件,他并不需要等到(样式表/图像/子框架)加载完成之后再进行;

DOM完整的解析过程:
解析HTML结构。
加载外部脚本和样式表文件。
解析并执行脚本代码。//js之类的
DOM树构建完成。//DOMContentLoaded
加载图片等外部文件。
页面加载完毕。//load
在第4步的时候DOMContentLoaded事件会被触发。
在第6步的时候load事件会被触发

window.addEventListener('load', function(){
    // 页面全部加载完才会执行,包括图片、视频等
})

document.addEventListener('DOMContentLoaded', function(){
    // dom渲染完即可执行,此时图片、视频还可能没有加载完
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值