原始数据类型
在 JS 中,存在着 6 种原始值,分别是:
- null
- undefined
- Boolean
- number
- string
- symbol
对象(object)类型
**对象类型与原始类型的区别**
原始类型存储的是值,对象类型存储的是(指针)地址。
接下来我们来看函数参数是对象的情况
function test(person) {
person.age = 26
person = {
name: 'yyy',
age: 30
}
return person
}
const p1 = {
name: 'yck',
age: 25
}
const p2 = test(p1)
console.log(p1) // -> ?
console.log(p2) // -> ?
对于以上代码,你是否能正确的写出结果呢?接下来让我为你解析一番:
首先,函数传参是传递对象指针的副本
到函数内部修改参数的属性这步,我相信大家都知道,当前 p1 的值也被修改了但是当我们重新为
person 分配了一个对象时就出现了分歧,请看下图
所以最后 person 拥有了一个新的地址(指针),也就和 p1 没有任何关系了,导致了最终两个变量的值是不相同的。
判断类型(typeof and instanceof)
typeof 基于原始类型除了null都可以显示正确类型
typeof