位置: 编程技术 - 正文

JavaScript引用类型和基本类型详解(js 引用类型)

编辑:rootadmin

推荐整理分享JavaScript引用类型和基本类型详解(js 引用类型),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript 引用,javascript中引用数据类型,javascript引用对象的途径,JavaScript引用类型,javascript中引用数据类型,javascript中引用数据类型,javascript引用类型主要指,JavaScript引用类型有哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

在javascript中存在着两种类型的数据:基本类型和引用类型。

基本类型简单的说就是简单的数据段。

引用类型是由多个值构成的对象。

当我们进行赋值操作时,解析器会首先分析数据是值类型还是引用类型。

两种访问方式:

基本类型值:按值访问,操作的是他们实际保存的值;

引用类型值:按引用访问,当查询时,我们需要先从栈中读取内存地址,然后再顺藤摸瓜地找到保存在堆内存中的值;

下面就分别介绍一下javascript的这两种数据类型。

一.基本数据类型:

在javascript中存在着六种基本类型数据:string、number、boolean、symbol(ES6新增)、null、undefined。这五种基本数据类型可以直接操作保存在变量中的实际值。

代码实例如下:

上面的代码是一个简单的赋值操作,下面做一下简单介绍。

(1).首先数字是基本数据类型。(2).var b=a,此赋值操作实际上是将a的数据拷贝一份,然后赋值给变量b。(3).a和b是完全独立的。(4).b=,修改变量b的值不会影响变量a的值。

图示如下:

栈内存

JavaScript引用类型和基本类型详解(js 引用类型)

二.引用类型数据:

在javascript中,引用类型数据存储在堆内存中,但是不可以直接访问堆内存空间中的位置和操作堆内存空间。只能通过操作对象的在栈内存中的引用地址。所以引用类型的数据,在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存在堆内存中的对象。

代码实例:

下面对代码上面的代码做一下分下。

(1).var obj1=new Object(),这是创建一个对象,是一个引用类型数据,变量obj1存储的是对象在堆内存中的地址。(2).var obj2=obj1,这个赋值操作其实是将对象在堆内存中的存储地址复制给变量obj2,也就是两个变量存储的都是指向实际对象的内存地址,指向的是同一个对象。(3).obj2.name="积木网",为对象添加一个属性。(4).console.log(obj1.name),输出"积木网,因为两个变量指向同一个对象。

图示如下:

String一个特殊的基本数据类型

在很多语言中,String是以对象的形式表示的,但在ECMAScript里没有沿用这种传统,String是当作一种基本数据类型,但它是一个比较特殊的基本类型。

看上去好像String应该做为一个引用类型,可实际上它不是,因为它不是对象。那么看起来它应该是基本数据类型,应该是通值传递的方式来操作。

看下面例子:

上面例子我们看到,仿佛stra通过值传递的方式复制了一份给了strb。当stra改变的时候,strb并没有改变,似乎我们已经可以下结论,String就是个基本数据类型。

可是,因为String是可以任意长度的,通过值传递,一个一个的复制字节显示效率依然很低,看起来String也可以当作引用类型。

看下面例子:

显示String无法当作一个对象来处理。实际上,javascript里的String是不可以改变的,javascript也没有提供任何一个改变字符串的方法和语法。

记住这样做,就没有改变String字符串"myobject",只a引用了另一个字符串"bj","myobject"被回收了。

所以可以这样讲,String实际上并不符合上面两种数据类型分类。它是具有两方面属性介于两都之间的一种特殊类型。

javascript中加var和不加var的区别 你真的懂吗 Javascript是遵循ECMAScript标准下的一个产物,自然ECMAScript的标准其要遵循。先来看下var关键字的定义和用法var语句用于声明变量。JavaScript变量的创建也叫

JavaScript实现点击按钮直接打印 很多网站都有此功能,当浏览到底部时都会有一个打印按钮,点击打印按钮就可以完成打印功能,功能非常不错,人性化,代码非常的简单。ahref="javascr

莱鸟介绍window.print()方法 print()方法的定义和用法:此方法可以产生一个打印设置界面,此界面与右击窗口,然后点击打印选项产生的界面一样。语法结构:window.print()浏览器支持:1.

标签: js 引用类型

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

上一篇:js模仿java的Map集合详解(js map(parseint))

下一篇:javascript中加var和不加var的区别 你真的懂吗(javascript var)

  • 增值税专票开错了可以作废吗
  • 装卸费属于什么费用
  • 一般纳税人注销公司麻烦吗
  • 城镇土地使用税减免税政策
  • 增值税留抵退税是什么意思
  • 房屋契税怎么交在手机上操作
  • 食用油交不交消费税
  • 个体工商户可以给员工交社保吗
  • 加工费暂估入库的会计分录
  • 企业所得税税率有几个档次
  • 银行卡待报解预算收入是什么钱
  • 融资租赁开始日最低租赁付款额
  • 小规模纳税人亏损交所得税吗
  • 企业转让股权收入应于转让协议生效时确认收入的实现
  • 关于保险机构代收车船税开具增值税发票问题的公告
  • 发票普票冲红
  • 个人营业执照怎么注销网上申请流程
  • 医疗器械 税点
  • 公司帮员工买的保险
  • 企业取得的土地使用权用于出租或增值目的时
  • 车船税征税范围包括火车吗
  • 最新消费税税目顺口溜
  • 注销怎么做账
  • 补缴的增值税可以计入以前年度损益调整
  • 进项税转出如何申报纳税
  • 货币资金核算流程设计
  • 附加税是销项税减去进项税
  • 文艺汇演活动经历怎么写
  • 应收账款的差额计入哪里
  • 脚手架属于什么费用
  • 计提折旧是什么账户
  • 资产处置收益与固定资产清理
  • 住房补贴缴纳比例是多少
  • win 8和win 7有什么区别
  • 往来款作为投资款的影响
  • php中pdo
  • sovies
  • 工会经费可以提出来使用吗
  • php数据库编程
  • php网站安全防护
  • 公司注销账面实收资本如何处理
  • ts类型声明 要为某个文件里的变量声明吗
  • docker的常用命令汇总
  • php获取远程图片文件流
  • 坏账损失的核算属于会计估计
  • 贷款需要考虑什么
  • 企业所得税品目应纳税所得额未申报
  • 小微企业开具增值税专票
  • SQL Server 中 RAISERROR 的用法详细介绍
  • 社保可以抵扣吗
  • 税金及附加的科目核算有哪些
  • 增值税纳税申报实训报告
  • 电子税务局没有增值税申报怎么办?
  • 工装算劳保用品还是办公费
  • 社保个税申报是什么意思
  • 投资公司如何运作
  • 期初应收账款对应什么科目试算平衡
  • 暂估入库后发票整单折扣
  • 公司购买的五金怎么入账
  • 实收资本印花税税率多少
  • 跨年更正错误记账凭证的方法
  • 流动性比率怎么算
  • 母子公司往来款是否涉及交税
  • 物业管理企业应按职工工资总额的1.5%计提工会经费
  • WIN7系统屏幕亮度哪里设置
  • win8正版系统
  • 多人共用一台电脑,如何保密
  • CentOS ip_conntrack: table full, dropping packet 的解决方法
  • windows使用svn命令
  • win10系统关闭防火墙服务
  • regloadr.exe - regloadr是什么进程 有什么用
  • win7提示计算机内存不足
  • win降级10.3.3
  • 如何搭建node服务器
  • 转换目录的命令
  • Android Http访问网络 学习(慕课网学习)
  • javascript none
  • 广东省地税局局长 吴
  • 税控盘时间不对有影响吗
  • 朝阳银行作息时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设