位置: 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函数怎么用)

  • 不要简单地把直通车当做是引流工作

    不要简单地把直通车当做是引流工作

  • 华为深色模式在哪里(华为 深色模式)

    华为深色模式在哪里(华为 深色模式)

  • 微信公众号关注了取消没事吧(微信公众号关注太多怎么全部关闭)

    微信公众号关注了取消没事吧(微信公众号关注太多怎么全部关闭)

  • 抖音侵权是什么(抖音侵权是什么意思)

    抖音侵权是什么(抖音侵权是什么意思)

  • 小米电脑鼠标箭头不见了(小米电脑鼠标箭头不动是什么原因)

    小米电脑鼠标箭头不见了(小米电脑鼠标箭头不动是什么原因)

  • oppo手机光线暗怎么调回来(oppo手机光线暗怎么办)

    oppo手机光线暗怎么调回来(oppo手机光线暗怎么办)

  • 来电提醒有几种可能(来电提醒是干什么用的)

    来电提醒有几种可能(来电提醒是干什么用的)

  • 抖音为什么不展示活动状态(抖音为什么不展现作品)

    抖音为什么不展示活动状态(抖音为什么不展现作品)

  • qq缓存清理有影响吗(qq清理缓存会删除文件吗)

    qq缓存清理有影响吗(qq清理缓存会删除文件吗)

  • 小米5x用OTG显示不出来

    小米5x用OTG显示不出来

  • 天机1000是什么处理器(天机1000+是哪款手机)

    天机1000是什么处理器(天机1000+是哪款手机)

  • iphone7p耳机没声音(7p手机耳机没有反应)

    iphone7p耳机没声音(7p手机耳机没有反应)

  • 高对比度文字会耗电吗(高对比度文字为什么是高风险功能?)

    高对比度文字会耗电吗(高对比度文字为什么是高风险功能?)

  • 苹果11单手模式怎么开(苹果11单手模式怎么触发)

    苹果11单手模式怎么开(苹果11单手模式怎么触发)

  • ehviewer是什么东西(ehviewer什么意思)

    ehviewer是什么东西(ehviewer什么意思)

  • 如何把歌词放在桌面上(如何把歌词放在桌面)

    如何把歌词放在桌面上(如何把歌词放在桌面)

  • xsmax是高通版本基带吗

    xsmax是高通版本基带吗

  • 苹果6s支持ios13系统吗(苹果6s支持ios14吗)

    苹果6s支持ios13系统吗(苹果6s支持ios14吗)

  • 单反自拍怎么设置(单反自拍怎么调正反)

    单反自拍怎么设置(单反自拍怎么调正反)

  • iphonex怎么给微信加密(iphonex怎么给微信加密码锁)

    iphonex怎么给微信加密(iphonex怎么给微信加密码锁)

  • 怎样将收藏的东西发到朋友圈(怎样把收藏的内容保存到相册里)

    怎样将收藏的东西发到朋友圈(怎样把收藏的内容保存到相册里)

  • 如何设置两台路由器 两台路由器的连接和设置方法(如何设置两台路由器连接)

    如何设置两台路由器 两台路由器的连接和设置方法(如何设置两台路由器连接)

  • 【图像分割】Segment Anything(Meta AI)论文解读(图像分割csdn)

    【图像分割】Segment Anything(Meta AI)论文解读(图像分割csdn)

  • python Series如何进行相加(python的series)

    python Series如何进行相加(python的series)

  • DEDE织梦网站迁移教程 DEDE搬家的两种方法(将织梦dedecms转换到wordpress)

    DEDE织梦网站迁移教程 DEDE搬家的两种方法(将织梦dedecms转换到wordpress)

  • 小程序如何集成即构IM实现即时通讯发消息聊天(小程序集合软件)

    小程序如何集成即构IM实现即时通讯发消息聊天(小程序集合软件)

  • 个税申报本期收入指的是
  • 劳务报酬个人所得税税率表
  • 只有增值税专用发票才能勾选抵扣吗
  • 小规模纳税人如何转一般纳税人
  • 工会经费申报晚了怎么处理
  • 异地预缴税款怎么抵扣
  • 银行结息计入什么费用
  • 各种收入与应纳税额的比例
  • 劳务公司的暂估费是什么
  • 转出未交增值税借方余额怎么处理
  • 网贷公司的印花税怎么交
  • 小规模怎样计算进项税额
  • 征收开票信息
  • 企业从事生产经营活动时所持有的基本信念
  • 餐饮发票可以抵扣成本吗
  • 作废章盖在哪个位置
  • 补贴收入营业外收入比例过高
  • 拍卖抵债资产的缴税责任
  • 不动产广告位出租税率是多少
  • 未成立工会组织情况说明
  • 同一控制下合并对价怎么算
  • 6月 全新windows
  • php面向对象优点,缺点
  • 仓储费计入存货成本吗
  • php
  • 啥叫同比增长
  • 像指纹一样的图形
  • 食堂现金管理办法
  • Notojima岛附近的牡蛎养殖场,日本石川县 (© divedog/Shutterstock)
  • 农业公司经营项目有哪些?
  • json_server
  • php使用oci8扩展连接oracle
  • 公司转让债权人怎么办
  • 商业积分消费模式
  • 企业净利润率是多少好
  • 滴滴打车的发票是什么样子
  • 税务法是否允许私人经营
  • 航天信息服务费的会计分录
  • 织梦如何使用
  • 以前年度未处理的业务
  • 用友t3资产负债表怎么生成季报
  • 对公账户余额和可用余额不一样
  • 劳动仲裁赔偿款会计分录
  • 上月的普票下月可以记账么
  • 私车公用费用报销是否违规
  • 捐赠纳税调整额怎么算
  • 确认借款无法收款怎么办
  • 股东分红会计分录
  • 企业的营业税金怎么计算
  • 支付水电费会计等式
  • 哪些固定资产不会随着时间的流逝贬值
  • 季度末需要结转本年利润吗
  • win7系统开启telnet服务
  • linux系统中cron命令
  • centos 进程查询
  • centos7怎么查看进程名称吗
  • win8 所有程序
  • win8.1安装过程
  • win7控制面板有哪些功能
  • win8不能安装软件
  • linux的命令行界面是什么意思
  • windows8.1rt
  • Unity3D游戏开发毕业论文
  • Javascript WebSocket使用实例介绍(简明入门教程)
  • reg add命令
  • nodejs quic
  • python flask快速入门与进阶
  • shell中使用变量
  • python中deque
  • js cookie存取
  • js对象用法
  • 生产者消费者的作用
  • 全国增值税务查询官网
  • 宁波出租车购买
  • 浙江电子税务局移动端
  • 申报印花税显示未维护营行业信息
  • 出口退税收入怎么做账
  • 传统服务贸易和新兴服务贸易如何区分
  • 湖南地方税务局网上办税大厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设