资讯专栏INFORMATION COLUMN

包装类对象

RyanQ / 1705人阅读

摘要:包装类对象介绍里的三个主原始数据类型数值,字符串及布尔每一个都有其对应的对象类。最后一点,所有的数值,字符串及布尔都可以通过函数转换成其对应的对象优点可以使用很多使用方法封装类对象结合隐式强制转换,让我们可以使用很多实用的方法。

包装类对象 介绍

js里的三个主原始数据类型(数值,字符串及布尔)每一个都有其对应的对象类。

JavaScript中不仅提供了数值型,字符串型及布尔型,它还提供了数值类,字符串类及布尔类。这些类将对应的原始数据类型包装了起来,它不但拥有其原始数据值,而且还定义了属性和操作值的方法。

JavaScript能够很灵活的转换各种数据类型。当你访问一个字符串的属性或方法时,JavaScript内部会自动创建其包装对象。这个字符串包装对象将替换原始字符串值,它拥有已定义的属性和方法。

这样的使用方法是对的:

var s="hello";//这是一个原始数据值
 
var S=new String("hello");//这是一个字符串对象

typeof s //"string"
typeof S //"object"

字符串在需要的时候会自动的转换为字符串对象。当你对S使用+运算符时,一个对应的原始字符串值将被创建,以便执行运算。

记住,这里讨论的所有内容都同样作用于数值型和布尔型。最后一点,所有的数值,字符串及布尔都可以通过Object()函数转换成其对应的对象: var number_wrapper=Object(22)

优点 可以使用很多使用方法

封装类对象结合隐式强制转换,让我们可以使用很多实用的方法。
当对原始值提取属性 和 进行方法调用时, 它表现的就像已经使用了对应的对象类型封装了该值一样。如——

"hello".toUpperCase(); //"HELLO"
缺点 获取和设置原始类型值的属性会隐式地创建封装对象,导致没有符合预期行为

一是,隐式转换+封装类 使得对原始值设置属性,可能会没有任何作用

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

这会导致有时候本想给一个对象设置属性,但没想到其是个原始值,这样设置的属性之后获取不到,会造成隐藏的错误。
并且,因为每次隐式封装都会产生一个新的String对象,更新第一个封装对象并不会造成持久的影响。

当做相等比较时,原始类型的封装对象与其原始值行为不一样

二是,这意味着,你不能使用内置的操作符来比较两个截然不同的String对象的内容

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

由于每个String对象都是一个多带带的对象,气重视值等于自身。对于非严格相等运算符,结果同样如此

s1 == s2 //false

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94500.html

相关文章

  • 14.java 基本数据型的包装

    摘要:但是基本数据类型不是对象,不具备对象的特性不携带属性没有方法可调用。自动装箱即直接赋值将会比使用构造方法的方式节省一块堆内存空间,并自动入对象池。而手动装箱使用构造方法会产生两块堆内存,而且不会保存在对象池中。 概念 java在设计之初,有一个基本原则:一切皆对象。但是基本数据类型不是对象,不具备对象的特性——不携带属性、没有方法可调用。为了解决此类问题,Java为每种基本数据类型分别...

    yanbingyun1990 评论0 收藏0
  • JAVA学习之路 (九)包装

    摘要:包装类基本数据类型如等。它们并不具备对象的特性,比如不能调用方法。为了让基本数据类型也能具有对象的特性,为每个基本数据类型提供了包装类。 包装类 基本数据类型:如 int、float、double、boolean、char 等。它们并不具备对象的特性,比如不能调用方法。为了让基本数据类型也能具有对象的特性,java为每个基本数据类型提供了包装类。 基本类型和包装类之间的对应关系: sh...

    MockingBird 评论0 收藏0
  • 深入浅出 Java 中的包装

    摘要:前阵子,我们分享了中的基本数据类型转换这篇文章,对许多粉丝还是有带来帮助的,今天讲一下包装类的的由来,及自动装箱拆箱的概念和原理。下面是基本数据类型与对应的包装类型。 showImg(https://segmentfault.com/img/remote/1460000016537706); 前阵子,我们分享了《Java中的基本数据类型转换》这篇文章,对许多粉丝还是有带来帮助的,今天讲...

    ytwman 评论0 收藏0
  • Java知识点总结(常用-包装

    摘要:知识点总结常用类包装类知识点总结常用类包装类是一个面向对象的语言,但是中的基本数据类型却不是面向对象的。但是我们在实际使用中经常将基本数据类型转换成对象,便于操作。 Java知识点总结(常用类-包装类) @(Java知识点总结)[Java, Java常用类] [toc] 包装类(wrapper) Java是一个面向对象的语言,但是Java中的基本数据类型却不是面向对象的。但是我们在实际...

    AlanKeene 评论0 收藏0
  • 包装模式就是这么简单啦

    摘要:包装模式是这样干的首先我们弄一个装饰器,它实现了接口,以组合的方式接收我们的默认实现类。其实装饰器抽象类的作用就是代理核心的功能还是由最简单的实现类来做,只不过在扩展的时候可以添加一些没有的功能而已。 前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 前一篇已经讲解了代理模式了,今天要讲解的就是装饰模式啦~ 在看到FilterInputStream和FilterOutpu...

    Developer 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<