js基础
typeof / instanceof
-
typeof会返回一个变量的基本类型,instanceof返回的是一个布尔值 -
instanceof可以准确地判断复杂引用数据类型,但是不能正确判断基础数据类型 -
而
typeof也存在弊端,它虽然可以判断基础数据类型(null除外),但是引用数据类型中,除了function类型以外,其他的也无法判断 -
ps:
Object.prototype.toString.call([1,2]) // [object Array]
深拷贝、浅拷贝
JavaScript中存在两大数据类型:
-
基本类型
基本类型数据保存在在栈内存中
-
引用类型
引用类型数据保存在堆内存中,引用数据类型的变量是一个指向堆内存中实际对象的引用,存在栈中
-
浅拷贝
如果属性是基本类型,拷贝的就是基本类型的值。如果属性是引用类型,拷贝的就是内存地址
-
深拷贝
深拷贝是递归拷贝深层次,属性为对象时,深拷贝是新开栈,两个对象指向不同的地址
const _ = require('lodash'); const obj1 = { a: 1, b: { f: { g: 1 } }, c: [1, 2, 3] }; const obj2 = _.cloneDeep(obj1); console.log(obj1.b.f === obj2.b.f);// false
defer / async
| 顺序 | DOMContentLoaded |
|
|---|---|---|
async |
加载优先顺序。脚本在文档中的顺序不重要 —— 先加载完成的先执行 | 不相关。可能在文档加载完成前加载并执行完毕。如果脚本很小或者来自于缓存,同时文档足够长,就会发生这种情况。 |
defer |
文档顺序(它们在文档中的顺序) | 在文档加载和解析完成之后(如果需要,则会等待),即在 DOMContentLoaded 之前执行。 |
浙公网安备 33010602011771号