位置: IT常识 - 正文

数据类型(数据类型所占的字节)

编辑:rootadmin
javaScript有哪些数据类型,有什么区别 javascript有八种数据类型:undefined, Null, Boolean, Number, String, Symbol, Biglnt,Object。 symbol和Biglnt是ES6新增的数据类型: symbol代表创建后独一无二且不 ... javaScript有哪些数据类型,有什么区别

推荐整理分享数据类型(数据类型所占的字节),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:数据类型的分类,数据类型的分类,数据类型转换,数据类型怎么设置,数据类型的分类,数据类型的7个基本数据类型,数据类型是什么意思,数据类型是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!

javascript有八种数据类型:undefined, Null, Boolean, Number, String, Symbol, Biglnt,Object。

symbol和Biglnt是ES6新增的数据类型:

symbol代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现全局变量冲突的问题。Biglnt是一种数字类型的数据,它可以表示任意精度格式的整数,使用Bigint可以安全地存储和操作大整数,即使这个数已经超出了Number能够表示的安全整数范围。

这些数据类型分为基本数据类型和引用数据类型:

栈:基本数据类型(undefined,Null,Number,String,Boolean)堆:引用数据类型(对象,数组,函数

基本数据类型和引用数据类型的区别在于存储位置不同:

基本数据类型直接存储在栈(stack)中的简单数据段,占据空间小,是被频繁使用的数据。引用数据类型存储在堆(heep)中的对象,占据空间大,如果存储在栈中,会影响浏览器的性能;引用数据类型是在栈中存储了指针,该指针指向堆中的存储的对象浏览器会先检索栈中的地址,通过地址获得堆中的实体

堆和栈存在于数据结构和操作系统内存中

数据结构中:

栈中的数据存取方式为先进后出。堆是一个优先队列,是按照优先级来进行排序的,优先级可以按照大小来规定。

操作系统内:

栈区内存由编译器自动分配释放,存放函数的参数值,局部变量的值等。堆区内存一般由开发者释放,若不释放,结束时可能时由垃圾回收机制(GC)回收。数据类型检测的方式有哪些数据类型(数据类型所占的字节)

(1)typeof

数组,对象,null都会被判断为object

console.log(typeof 2); // numberconsole.log(typeof true); // booleanconsole.log(typeof 'str'); // stringconsole.log(typeof []); // object console.log(typeof function(){}); // functionconsole.log(typeof {}); // objectconsole.log(typeof undefined); // undefinedconsole.log(typeof null); // object

(2)instanceof

  instanceof可以正确判断对象的类型,其内部运行机制时在原型链中能否找到该类型的原型。

console.log(2 instanceof Number); // falseconsole.log(true instanceof Boolean); // false console.log('str' instanceof String); // false console.log([] instanceof Array); // trueconsole.log(function(){} instanceof Function); // trueconsole.log({} instanceof Object); //true

  instanceof只能正确判断引用数据类型,而不能判断基本数据类型。

  instanceof运算符可以用来测试一个对象在其原型链中是否存在一个构造函数的prototype属性。

(3)constructor

console.log((2).constructor === Number); // trueconsole.log((true).constructor === Boolean); // trueconsole.log(('str').constructor === String); // trueconsole.log(([]).constructor === Array); // trueconsole.log((function() {}).constructor === Function); // trueconsole.log(({}).constructor === Object); // true

  constructor有两个作用:一是判断数据的类型,二是对象实例通过constructor对象访问的构造函数,需要注意:如果创建一个对象来改变它们的原型,constructor就不能判断数据类型

function Fn(){};Fn.prototype = new Array();var f = new Fn();console.log(f.constructor===Fn); // falseconsole.log(f.constructor===Array); // true

(4)Object.prototype.toString.call()

   Object.prototype.toString.call() 使用Object对象的原型方法toString来判断数据类型:var a = Object.prototype.toString;

console.log(a.call(2)); //[object Number]console.log(a.call(true));    //[object Boolean]console.log(a.call('str'));    //[object String]console.log(a.call([]));    //[object Array]console.log(a.call(function(){}));    //[object Function]console.log(a.call({}));    //[object Object]console.log(a.call(undefined));  //[object Undefined]console.log(a.call(null));    //[object Null]判断数组的方式通过Object.protottype.toString.call()let obj = [1,2,3]Object.prototype.toString.call(obj).slice(8,-1) === 'Array'通过原型链let obj = [1, 2, 3]console.log(obj.__proto__ === Array.prototype)通过ES6的Array.isArray() fn() function fn() { let obj = [1, 2, 3] console.log(Array.isArray(obj)); }通过instanceof let obj = [1, 2, 3] console.log(obj instanceof Array);通过Array.prototype.isPrototype() let obj = [1, 2, 3] console.log(Array.prototype.isPrototypeOf(obj));null和undefined的区别

undefined和null都是基本数据类型,这两个基本数据类型都只有一个值,就是undefined和null.

undefined代表的是未定义,null代表的是空对象。一般

本文链接地址:https://www.jiuchutong.com/zhishi/311598.html 转载请保留说明!

上一篇:python元组如何打包和解包(python中的元组)

下一篇:python中Sample函数是什么?(python中sample函数怎么用)

  • 建筑行业有哪种职业
  • 个人去税务局开劳务票 税点是多少
  • 运输行业一般纳税人税率
  • 融资利息进项税如何抵扣
  • 高新技术企业亏损弥补
  • 银行存款余额调节表编制
  • 公司注销单位社保欠费怎么处理
  • 什么情况需要预缴增值税
  • 公司会计制度由小企业会计准则改为企业会计准则怎么做
  • 设备租赁合同需要审核吗
  • 个体户定期定额是什么意思
  • 军队票据可作税前扣除凭证吗
  • 固定资产替换公式
  • 一次性筷子的消费税
  • 小规模纳税人销售额
  • 一次性加速折旧汇算清缴调增吗
  • 付佣金给客户怎么做分录?
  • 收到联营单位投入的设备一台
  • 固定资产房屋原值增加折旧月数怎么算
  • 补上年所得税加滞纳金入哪个科目?
  • 报税系统增值税纳税申报查询可以查几年的
  • 合伙企业购买股票产生的收益需要缴纳税款吗
  • 季度报税每个月还用计提吗
  • 跨地区经营产生的GDP
  • 税务稽查执法要以什么为依据,按照法定的职责
  • 广告设计公司需要哪些设备
  • 其他应付款报表填列
  • 盈余公积意思大白话解释
  • 个人装修可以开发票吗?
  • 印花税的购销合同改成买卖合同了吗?
  • 前两个月亏损第三个月盈利所得税怎么计算
  • 车间日常维修费用计入什么科目
  • 支付宝付款凭证可以当发票吗
  • 银行承兑汇票质押率90%
  • 土地使用权评估中的成本法
  • 暂估成本后发票怎么入账
  • 商业承兑汇票提示承兑期限
  • win10蓝牙驱动怎么安装程序
  • 交易性金融资本
  • proxydriod
  • cuda版本更新
  • zend framework手册
  • 庞塞 德莱昂
  • 暂估价是单价还是总价
  • gps定位器怎么开启
  • mac配置flutter环境变量
  • echo输出语句
  • 研发部门的房租物业费进什么科目
  • 收押金退押金会计分录
  • python中模块的概念
  • 公司没有车加油票怎么做账
  • 社会团体费用报销制度
  • SQL Server 2008中SQL查询语句字段值不区分大小写的问题解决
  • db2 history
  • 企业接受捐赠增值税处理
  • 实收资本结转本年利润
  • 购买银行理财产品的几个必须知道
  • 个人所得税多计提怎样冲销
  • 装订凭证如何穿线
  • 公司广告制作费用申请报告
  • 代金券消费怎么入账
  • 银行理财产品算银行存款吗
  • 公司购买的打印机附赠给客户进项税可以抵扣吗
  • 销售一批产品给丙公司,该批产品标价200万yuan
  • 三大财务报表英文
  • 2023年职工社保缴费标准一览表
  • 公司自建的房子能买吗
  • win7如何查看图片的rgb
  • win7怎么添加此电脑
  • mac和iphone互动
  • centos直接进入命令行
  • win7系统安装谷歌浏览器
  • cocos2dx4.0入门
  • Android: AudioFlinger中AudioPolicy的简单介绍
  • unity3d脚本怎么用
  • javascript详细介绍
  • 深入理解新发展理念,推进供给侧结构性改革心得体会
  • jquery.validator
  • 江苏省国家税务局发票查询
  • 发票专用章盖在哪里
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设