乐趣区

关于javascript:JavaScript基本包装类型

根本包装类

js 中为了便于根本类型操作,提供了 3 个非凡的援用类型:Boolean、Number、String它们具备根本类型非凡行为。

实际上,每当读取一个根本类型的时候,js 外部会主动创立一个根本包装类型对象,能够让咱们调用一些办法来操作。

let str = 'hello 蛙人'
let str1 = str.substring(2)

下面 example 中,str 是一个字符串类型,然而它调用了 substring 办法,并将后果保留在了 str1 中,咱们晓得根本类型不是对象,咱们就会想,哎 它不是对象为什么能调用办法,其实 js 外部曾经实现了一系列的解决,当执行第二行代码时,拜访过程处于一种读取状态,也就是要从内存中读取这个字符串的值。那 js 外部是怎么解决的呢,看上面。

  1. 创立 String 类型的实例
  2. 在实例上调用指定的办法
  3. 最初销毁该实例
let str = new String('hello 蛙人')
let str1 = str.substring(2)
str1 = null

通过下面的加工后,根本字符串变的跟对象一样,下面这三个步骤也实用于 Boolean、Number 类型。


那么有的小伙伴就会纳闷,援用类型和根本包装类有什么不同呢,最次要的区别就是对象的生存期

  • 援用类型:应用 new 操作符创立的援用类型实例,在执行流来到以后作用域之前始终都保留在内存中,
  • 根本包装类型:只存在一行代码的执行霎时,而后立刻销毁

根本包装类意味着咱们不能在运行时为对象增加属性及办法,因为它们执行完后会立刻销毁

let str = '蛙人'
str.age = 23
console.log(str.age) // undefined

下面第二行代码中,为“蛙人“增加 age 属性,然而在上面打印发现是 undefined,问题就在于,第二行代码执行完后立刻销毁,第三行代码再次创立 String 对象发现没有该 age 属性。


如果感觉写的不错的话,那就点个赞叭!

退出移动版