js基础面试
Object function number boolean undefined string symbol
const n = null;
===判断值跟类型
==判断值
一般除了==null之外,其他用===
- window.onload和DOMContentLoaded的区别
考点:性能、体验优化
function deepClone(obj = {}) {
if (typeof obj !== 'object' || obj == null) {
return obj
}
let result
if (obj instanceof Array) {
result = []
} else {
result = {}
}
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
result[key] = deepClone(obj[key])
}
}
return result
}
const c = true + '10';
null == undefined
false == 0/'';
0 == '';
null == undefined;
null == 0;
null == '';
0 == '';
undefined == '';
undefined == 0;
除了 == null外,其他一律用===
obj.a == null
str instanceof Array
function print(fn){
const a = 200;
fn();
}
const a = 100;
function fn(){
console.log(a);
}
print(fn);
this去什么值是在函数调用的时候决定的
》》》箭头函数取决于它的上一级作用域
js 添加 debugger自动断点
- window.onload和DOMContentLoaded区别
在js中DOMContentLoaded方法是在HTML文档被完全的加载和解析之后才会触发的事件,他并不需要等到(样式表/图像/子框架)加载完成之后再进行;
DOM完整的解析过程:
解析HTML结构。
加载外部脚本和样式表文件。
解析并执行脚本代码。
DOM树构建完成。
加载图片等外部文件。
页面加载完毕。
在第4步的时候DOMContentLoaded事件会被触发。
在第6步的时候load事件会被触发
window.addEventListener('load', function(){
})
document.addEventListener('DOMContentLoaded', function(){
})