JS 中的数据类型以及判断

Javascript中有两种数据类型,分别是原始类型对象类型

原始(Primitive)类型

boolean、number、string、null、undefind、smybol

原始数据类型是存储在栈中的,遵循先进后出的规则

boolean 是一个布尔值,ture  或者 false, === 、!==、>、< 可以转换数据类型

number 是数值,使用 - 、% 可是把其他类型转换成数值类型

string 是字符串;在js中其他类型可以通过隐式类型转换成字符串类型,比如 == ,+

null 可以是 '' 一个空串;当对象类型不需要使用想让它被清理时可以给把他的引用对象设置成null

undefined 是一个属性被定义但没有赋值;一个对象被申明但是它下面的属性不存在,比如 var 申明一个值,会发生变量提升,但是他的值不会被提升,在控制台打印会是一个 undefind

smybol 是 ES6 新增的可以定义全局变量的一个值

对象(Object)类型

Array、Function、Object

对象类型是存储在堆中的,它会存储两份,另一份存储的是对象的地址。当引用原始类型时,实际上是引用的栈中对象的地址。当对象的地址不被引用时,会被js中的垃圾回收机制回收

typeof VS instanceof

typeof 对于原始数据类型来说,除了 null 都能显示 正确的数据类型

typeof 对于引用数据类型来说,除了 function 都会显示 Object

instanceof 可以判断原始数据类型,他是基于原型链来判断的

instanceof 不能直接判断原始数据类型,可以通过 smybol.toPramiting 设置(好像写错了),或者 new Number() 这种也可以判断

所以 instanceof 也不一定准确

其他检测方法

原始类型可以判断 construtor 是否等于 type 来判断

Array.isArray() 判断数组

a=== null 判断是否是null

万能方法  Object.prototype.toString.call()  ,通过这个方法可以把引用数据类型转换成袁术数据类型,比如 [object object] 第二个参数会随着传入参数的改变改变

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容