【JS学习】原始值与引用值知识点

**

原始值与引用值

**

原始值

》原始值表示单一的数据
》ES中的原始值类型(6种):Undefined、Null、Boolean、Number、String、Symbol。
》表示原始值的变量是按值访问,在操作变量时,改变的是存储在变量内存中的实际值
》原始值不可以拥有属性也不可以被改变。

引用值

》引用值是表示由多个值(原始值或其他引用值)构成的对象
》ES中不允许直接访问对象的内存。实际操作对象时,其实访问的是保存对象内存的地址。(即,该对象的引用)

动态属性

》原始值是不可以改变的。
例如:let i = 0;其中,0这个值是不能被改变的,宏观上对0的改变,其实是对0的替换。
》引用值(对象)可以随时添加、修改和删除其属性和方法
》原始值不可以拥有属性。如果在JS中,如果写成了对原始值属性进行操作,实际上是JS创建了一个对象,在对原始值进行属性操作的语句执行之后,该对象就被销毁。
例如:
在这里插入图片描述
此代码的输出结果为undefined。
因为在执行到第2条语句,也就是one.age = 20时,JS创建了一个对象来满足one.age的操作需求,而在这条语句执行结束之后,此处创建的对象就被销毁。
第3条语句对one.age进行输出时,此时并不存在one这个对象,因而是undefined。

值传递

》值传递即是赋值,是将值传递给变量的过程。
原始值与引用值值传递的区别
》本质上没有区别,都是僵变量中保存的信息复制给另一个变量。但是当传递的是一个对象是,对对象进行复制的时候,会修改到原对象的值。
原始值值传递
在这里插入图片描述
引用值的值传递
在这里插入图片描述

类型确定

typeof
typeof对于所引用的内容的类型的判断是不准确的。对于几乎所有的引用的值的类型,得到的结果都是object。
在这里插入图片描述
instanceof
对于引用值,通常采用 instanceof操作符判断引用值是否为某个构造函数的实例。
》instanceof不是方法,不可以通过“ . ”进行调用。
》instanceof的返回值为true或者false。

基本包装类型

原始包装类型
ES提供了3种特殊的引用类型:Boolean、Number、String。
》每当用到某个原始值的方法或属性时,后台会创建一个相应的原始包装类型的对象,从而暴露出操作原始值的各种方法。
后台执行步骤:
(1)创建一个包含了原始值的String类型的实例;
(2)调用实例上的特定方法;
(3)销毁该实例;
例如:
在这里插入图片描述
另如:
在这里插入图片描述
Number在js中如果只作为函数使用,则会进行强制类型转换。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值