美文网首页
4.原始类型优于封装对象

4.原始类型优于封装对象

作者: Somnusochi | 来源:发表于2017-12-12 11:31 被阅读0次

除对象之外,JavaScript有5个原始值类型:布尔值、数字、字符串、null和undefined。同时标准库提供了构造函数来封装布尔值、数字和字符串作为对象。你可以创建一个String对象,String对象是真正的对象。

var s = new String("hello");
s + " world"; // hello world
s[4]; // "o"
typeof "hello"; // "string"
typeof s; // "Object"

由于每个String对象都是一个独立的对象,其总是只等于自身。

var s1 = new String("hello");
var s2 = new String("hello");
s1 == s2; // false
s1 === s2; // false

当对原始值提取属性和进行方法调用时,它表现得就像已经使用了对应的对象封装了该值一样。

"hello".toUpperCase(); // "HELLO"

你可以对原始值设置属性,但是对其丝毫没有影响。

"hello".someProperty = 17;
"hello".somProperty; // undefined

每次隐式封装都会产生一个新的String对象,更新第一个封装对象并不会造成持久的影响。对原始值设置属性是没有意义的。

提示

  • 当做相等比较时,原始类型的封装对象与其原始值行为不一样。
  • 获取和设置原始类型值的属性会隐式地创建封装对象。

相关文章

  • 4.原始类型优于封装对象

    除对象之外,JavaScript有5个原始值类型:布尔值、数字、字符串、null和undefined。同时标准库提...

  • 原始类型与对象类型区别

    在 JS 中,除了原始类型那么其他的都是对象类型了。对象类型和原始类型不同的是,原始类型存储的是值,对象类型存储的...

  • q第三章 类型、值和变量

    数据类型: 原始类型(primitive type)和对象类型(object type)。原始类型包括: 对象是属...

  • 探索JDK之Integer类

    1. 简介 Integer类封装了一个值int原始类型的一个对象。一个Integer类型的对象包含一个字段的类型是...

  • 探索JDK之Long类

    1. 简介 Long类封装了一个值long原始类型的一个对象。一个Long类型的对象包含一个字段的类型是long。...

  • 探索JDK之Byte类

    1. 简介 Byte类封装了一个值byte原始类型的一个对象。一个Byte类型的对象包含一个字段的类型是byte。...

  • js数据类型隐式转换

    原理分析: 因为a是个对象,对象与原始类型进行比较的时候会将对象转换成原始类型,对象转换成原始类型就是依据valu...

  • 探索JDK之Short类

    1. 简介 Short类封装了一个值short原始类型的一个对象。一个Short类型的对象包含一个字段的类型是sh...

  • 2.js基础--string

    包装类型:专门封装原始类型的值,并提供对原始类型的值进行操作的API。原始类型的值本身没有任何功能,当试图对原始类...

  • JavaScript基础 面向对象

    包装对象 原始类型(字面量\值类型)boolean number str字面量创建过程 只有原始类型才有包装对象...

网友评论

      本文标题:4.原始类型优于封装对象

      本文链接:https://www.haomeiwen.com/subject/mmcwixtx.html