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 ( ) {
} )