数据类型、检测数据类型、null和undefined的区别

数据类型

  1. Number:(数值型),表示数字,包括整数和浮点数
  2. String:(字符串型),表示文本,使用单引号,双引号或反引号括起来
  3. Boolean:(布尔型),表示真或假两个逻辑,true或false
  4. Undefined:(未定义),表示变量已声明但未被赋值
  5. Null:(空),表示变量被赋值为空
  6. Symbol:(符号型),ES6新增,表示独一无二的值,通常用于对象属性标识符
  7. object:引用数据类型
  8. function

检测数据类型

  1. Typeof:可以用来判断基本数据类型,如,String,Number,Boolean,Undefined,Symbol,Typeof的返回值是该类型的字符串形式,但是Typeof无法判断引用数据类型。
  2. Instanceof:可以用来判断一个对象是否属于某个类,只要这个对象原型链上存在这个类,那使用Instanceof判断就会输出true,Instanceof 用String会返回true,但是Instanceof只能用来判断引用数据类型,不能判断基本数据类型
  3. Constructor:可以用来判断基本数据类型和引用数据类型,因为所有对象都会从它的原型上继承Constructor的属性,Constructor也存在一些局限性,如null和undefined没有构造函数,所以Constructor无法用来判断它们
  4. Object.prototype.toString.call():是一种专门用于检测数据类型的方法,它可以用来判断对象的具体类型,如Object.prototype.toString.call(Array)

,会返回[object.Array]

null和undefined的区别

Null:表示一个值被定义了,定义为空值,用于指示一个变量指向的对象为空,列如,当一个对象应该存在但没有实际内容时,将其设置为空null.

Undefined:表示一个值不存在,用于指示一个变量尚未被赋值或没有定义,如当一个变量没有被声明但没有被赋值时,它的值就是undefined.

他两的值啥区别:首先null他代表的是这个变量定义了,他在内存空间当中是没有内存空间的,他不占内存空间,这就是一个变量被赋值的null的意义,

undefined就表示这个变量,在内存空间当中是有空间的,只是空间内没有值而已,这是第一个方面他两代表的值的区别

他两平常用是怎么用的:第二个角度理解的话null通常情况下是比如说我通常情况下定义的一个变量

,暂且不给他赋值,后续在给他赋值,但如果这个变量他是引用数据类型,就给他初始值赋值null,就表示他原本是不存在的。后续在给他赋值就存在了

如果是基本数据类型我就给他赋值成undefined,也就是有空间了一会可以给他放东西,也就是说null表示一个空对象,undefined表示一个空的数字是字符串

他两的类型不一样:从第三角度来说null严格来讲 他的类型是object,然后他是原型链最顶级的一个原型undefined只是说我们找一个对象当中的属性值在原型链上如果找不到然后null就产生了undefined的一个衍生值

所以通常情况下访问一个对象当中并不存在的这个属性的值,比如说有过object里面是空的但现在cslog出object.name很明显object.name中是没有内容的我们会得到一个undefined

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值