ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JS 有哪些数据类型,如何判断这些数据类型 ?

2022-08-19 11:34:20  阅读:147  来源: 互联网

标签:object 哪些 Object 数据类型 JS 判断 constructor prototype


最新标准定义了8种数据类型,7种基本数据类型,1中引用数据类型

基本数据类型:String,Number,Boolean,undefined,null,Symbol(符号),BigInt(数值类型,表示任意精度的整数)

引用数据类型:Object

它们的区别是在内存中的存储方式不同

基本数据类型是存储在栈中的简单数据段,占据空间小,被频繁使用

引用数据类型是存储在堆内存中,占据空间大;它在栈中存储有指针,该指针指向其在堆中的实体,当需要查找时,会检索栈中的指针,取得地址后从堆中获取实体

检测数据类型的4种方式:

  • typeof----------typeof  变量;
  typeof的返回值类型是字符串   当其判断基本数据类型时,null会返回'Object';其它类型可正确判断   当其判断引用数据类型时,判断函数会输出 'function';其它输出Object
  • instanceof-----------  obj1  instranceof  obj2;    //obj1是否属于obj2的实例

  判断两个对象是否属于实例关系,通过这种关系判断是否属于某一数据类型(但不能判断具体属于哪种数据类型)

  返回值为布尔值,是则true,否则false

  • constructor----------true.constructor===Boolean;//true

当一个函数F被定义时.js会为其添加prototype原型,在prototype上添加一个constructor属性,并让其指向F;当执行const f=new F()时;F是构造函数,f是F的实例对象,此时F原型上constructor传递  到f上,因此f.__proto__.constructor===F简写成f.constructor === F;

那么从此过程看构造函数F就是 f (实例)的类型;但constructor是不稳定的,因为可以重写prototype,那么此时原有的constructor会丢失,在没有重新指定其引用前,constructor默认为object

  • Object.prototype.toString.call()----------Object.prototype.toString.call(1);//[object Number ]

  toString是object的原型方法,返回值 [object type] ,其中type就是对象的类型

 

标签:object,哪些,Object,数据类型,JS,判断,constructor,prototype
来源: https://www.cnblogs.com/qianduan-Wu/p/16601405.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有