基本类型和引用类型的小结【万物皆对象】
如何判断数据类型?
基本类型:建议使用运算符typeof
引用类型:建议使用运算符instanceof
说明:
[1] typeof NaN为number,因为NaN是特殊的数字。
[2] typeof undefined为undefined,因为它就是一种基本类型。
[3] typeof null为object,可以把null理解为未初始化的对象。
[4] typeof无法区分数组和对象,均返回object。但是可以检测函数,返回function。
[5] instanceof若用于判断基本类型,则一律返回false。举例如下:
console.log(3.14 instanceof Number); console.log(NaN instanceof Number); console.log(false instanceof Boolean); console.log("happy" instanceof String); console.log(undefined instanceof Object); console.log(null instanceof Object);
以上结果输出均为false。
[6] 在JS中,万物皆对象,可以理解为引用类型(数组、对象、函数)都是Object的实例。举例如下:
function setName(obj) {obj.name = "JavaScript";} function doNothing() {;} let Tom = {}, Jerry = {name: "Jerry", age: 16}; let array1 = [], array2 = [1, 2, 3, 4]; console.log(setName instanceof Function); console.log(doNothing instanceof Function); console.log(setName instanceof Object); console.log(doNothing instanceof Object); console.log(Tom instanceof Object); console.log(Jerry instanceof Object); console.log(array1 instanceof Array); console.log(array2 instanceof Array); console.log(array1 instanceof Object); console.log(array2 instanceof Object); console.log(Array instanceof Object); console.log(Function instanceof Object); console.log(Object instanceof Object);
以上结果输出均为true。
这是我的理解和小结。请老师指正点评。
正在回答 回答被采纳积分+1
同学你好,首先要表扬一下,整理的不错,大部分都对。然后,针对以下两条进行指正。
1.typeof null为object,可以把null理解为未初始化的对象。
建议把未初始化的对象改为空对象指针。例如var obj=null , 这个obj是初始化的,它的值就得null,虽然null是一个空值,但是它表示一个空对象指针。像var obj ;这样的才叫未初始化。
2. 并不是说Object的实例才叫做对象。“万物皆对象”是一个概念(不要从语法上去理解),就是js中,一切事物我们都可以把它看成一个对象。例如字符串,数值,等等所有的类型本质上都是对象。只不过从语法划分上,把这些事物划分成基本类型,引用类型等。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星