位置: 编程技术 - 正文

JavaScript类型系统之基本数据类型与包装类型(js的类型有哪几种)

编辑:rootadmin

推荐整理分享JavaScript类型系统之基本数据类型与包装类型(js的类型有哪几种),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript 类型,javascript几种数据类型,javascript基本类型有哪些,js的类型有哪几种,js的类型有哪几种,javascript 类型,js中的类是什么,javascript几种类型,内容如对您有帮助,希望把文章链接给更多的朋友!

写在前面的话

  javascript的数据类型可以分为两种:原始类型和引用类型

  原始类型也称为基本类型或简单类型,因为其占据空间固定,是简单的数据段,为了便于提升变量查询速度,将其存储在栈(stack)中(按值访问)。其中,javascript基本数据类型包括Undefined、Null、Boolean、Number和String五种

  引用类型由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度,因此其存储在堆(heap)中,存储在变量处的值是一个指针,指向存储对象的内存处(按址访问)

  [注意]对于引用类型的值,可以为其添加属性和方法,也可以改变和删除其属性和方法;但基本类型不可以添加属性和方法

Undefined

  Undefined类型只有一个值,就是undefined。当声明的变量未初始化时,该变量的默认值是undefined

  对于尚未声明过的变量只能执行一项操作,使用typeof操作符检测其数据类型,但严格模式下会导致错误

typeof(test);//undefined

出现场景

  [1]已声明未赋值的变量

  [2]获取对象不存在的属性

  [3]无返回值的函数的执行结果

  [4]函数的参数没有传入

  [5]void(expression)

类型转换

Null

  Null类型只有一个值,就是null。逻辑角度看,null值表示一个空对象指针,如果定义的变量将用于保存对象,最好将该变量初始化为null。实际上undefined值是派生自null值的,所以undefined == null

  [注意]null是空对象指针,而[]是空数组,{}是空对象,三者不相同

出现场景

  对象不存在时

类型转换

  Boolean(null):   false  Number(null):   0  String(null):    'null'

  [注意]因为undefined和null不是构造器类型,所以不能添加自定义属性

包装类型

  包装类型是特殊的引用类型。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而可能调用一些方法来操作这些数据。包装类型共包括Boolean、Number和String三种

  [注意]引用类型和基本包装类型的主要区别是对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。这意味着不能在运行时为基本类型值添加属性和方法

创建方式

显式创建包装类型共两种方式:

JavaScript类型系统之基本数据类型与包装类型(js的类型有哪几种)

  [1]Object方式[不建议使用]

  [2]构造函数方式[不建议使用]

  [注意]使用new调用基本包装类型的构造函数与直接调用同名的转型函数是不一样的

Boolean

  Boolean类型只有两个值:true 和 false。Boolean包装类型是与布尔值对应的引用类型,在布尔表达式中使用Boolean对象容易造成误解

出现场景

  [1]条件语句导致系统执行的隐士类型转换

  [2]字面量或变量定义

类型转换

  Number(true): 1     ||   Number(false) : 0  String(true):'true'     ||   String(false):'false'

Boolean()

  Boolean(undefined):false  Boolean(null):false

  Boolean(非空对象包括空数组[]和空对象{}):true

  Boolean(非0): true || Boolean(0和NaN):false

  Boolean(非空包括空格字符串):true || Boolean(''):false

  [注意]true不一定等于1,false也不一定等于0

包装类型继承的方法

  valueOf():返回基本类型值true 或 false

  toString()和toLocaleString():返回字符串'true' 或'false'

Number

  javascript只有一种数字类型,既可以表示位的整数,还可以表示位的浮点数

  关于Number类型的详细信息移步到此

String

  String类型是javascript中唯一没有固定大小的原始类型

下面接着来理解下JavaScript基本数据类型的包装对象

现象:为什么可以对字符串的操作采用对象的表示法?

例如:

解析:

JavaScript三个基本数据类型都有相应的对象类;分别为Sring,Number,Boolean类;JavaScript可以灵活的将一种类型的值转换为另一种类型;当我们在对象环境中使用字符串时,即当我们试图访问这个字符串的属性或方法时;JavaScript会为这个字符串值内部地创建一个String包装对象;String对象会暂时代替原始的字符串值,完成我们的访问;这个被内部创建的String对象是瞬间存在的,它的作用是使我们可以正常访问属性和方法;String对象在使用过后会被系统丢弃掉;而原始值并不会被改变;

以上同样适用于数字和布尔值类型;

使用Object()函数,任何数字、字符串、布尔值都可以转换为它对应的包装对象;

例如:

谷歌Chrome浏览器扩展程序开发小记 根据公司的规定,每月八小时,弹性工作制。所以大家平时来的不太准时,如果有事,下班也就早些回去了。所以一个月下来工作时间可能不够,但是

年最热门的 款代码语法高亮工具,美化你的代码 前言:代码高亮很有用,特别是在需要在网站或者blog中显示自己编写的代码的时候,或者给其他人查看或调试语法错误的时候。我们可以将代码高亮,

js实现仿qq消息的弹出窗效果 在我们的日常开发中,或者生活中,经常需要用到弹出窗。这里我们就用js模拟一下qq消息一样的弹出窗,分享给大家供大家参考,具体内容如下运行效

标签: js的类型有哪几种

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

上一篇:4种JavaScript实现简单tab选项卡切换的方法

下一篇:谷歌Chrome浏览器扩展程序开发小记(谷歌chrome浏览器网页版网址)

  • 员工年终奖个税规避
  • 增值税留抵税务处理办法
  • 建筑公司可以开机械租赁发票吗
  • 业务提成模版
  • 销项发票导出是什么意思
  • 旅游服务小规模差额征税申报表怎么填
  • 新办企业一定要社保登记吗
  • 票面3个点的增值税发票是交几个点的税金
  • 政府基金如何开票
  • 租车纳税
  • 行政单位预算外资金收入
  • 非股东入资款会计分录怎么写?
  • 新会计准则适用企业
  • 收到红字发票会计处理
  • 小规模咨询费税率是多少
  • 国税未核定税种怎么处理
  • 怎么查询发票记录
  • 慰问金怎么入账科目
  • 个税申报已经申报如何更改
  • 核定征收的合伙企业 取得的投资收益
  • 付了款没有收到发票
  • win7电脑怎么样
  • php socket函数
  • 税控盘进项税已抵扣如何转出分录
  • i911900k与10900k
  • win10磁盘碎片整理打不开
  • 基于中国国情的中国式现代化具有哪些特色
  • cgtrader模型
  • 深度学习中正样本、负样本、简单样本、困难样本的区别 (简单易懂)
  • php考试时间倒计时
  • 资产负债表其他应收款计算公式
  • 个人账户收到多少钱会被监控
  • 跨境电商企业账务如何做账
  • php策略模式和工厂模式的区别
  • sQlite常用语句以及sQlite developer的使用与注册
  • 小规模附加税减免政策2023
  • 从农业生产者购进农产品
  • 2020年维修基金怎么交
  • 药店主营业务成本怎么算出来的
  • Windows7下Microsoft SQL Server 2008安装图解和注意事项
  • 工伤鉴定费计入什么科目
  • 研发支出费用化和资本化的界定
  • 认缴制下实收资本可以减少吗
  • 小规模附加税优惠政策最新2023
  • 现代服务业包括哪些项目
  • 私立幼儿园怎样转公立幼儿园
  • 企业取得的土地使用权用于自行开发建造厂房
  • 会计记账借贷记什么账户
  • 工业企业预提费用怎么算
  • mysql加密解密
  • sqlserver dbcc
  • redhat6.5安装图形界面
  • win8.1官方
  • win10音量调节不显示
  • u盘启动pe工具
  • win8如何添加启动项
  • window10 屏幕
  • iPhone怎么录制屏幕
  • 如何知道自己的邮箱号
  • win7的屏幕键盘
  • Win10 Mobile RS2预览版14905更新内容大全:全新精致铃声
  • xp电脑繁体系统改简体
  • windows 10 mobile--移动版
  • opencvsharp读取图片
  • 列举css的三种应用方式
  • UnityEditor.UI.dll' is in timestamps but is not known in assetdatabase
  • 批处理删除空文件夹
  • shell脚本编写的基本知识
  • css border-bottom
  • 在文本输入框中的输入内容是
  • vue组件生命周期执行顺序
  • jQuery select自动选中功能实现方法分析
  • 刀具路径轨迹模拟
  • jquery文档处理有哪些
  • html做一个新闻app首页
  • 退伍军人买车需要摇号吗
  • 贸易型企业进项发票
  • 利润报表怎么填写
  • 营改增后一般纳税人动产租赁税率
  • 宁波北仑有哪些服装厂
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设