javascript基本包装类型介绍


1.背景介绍

引用类型的值(对象)是一个引用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。它也通常称为类。

为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类型:Boolean、Number和String。这些类型与其他引用类型相似,但同时也具有与各自的基本类型相应的特殊行为。实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。


2.知识剖析

基本包装类型概述

var box = 'me';//定义一个字符串

var box2 = box.substring(2);//截掉字符串前两位

alert(box2);//输出新字符串

变量box是一个字符串类型,而box.substring(2)又说明它是一个对象(只有对象才会调用方法),最后把处理结果赋值给box2。


字面量写法:

var box = 'Mr. Lee';//字面量

box.name = 'Lee';//无效属性

box.age = function () {//无效方法

return 100;

};

alert(box);//Mr. Lee

alert(box.substring(2));//. Lee

alert(typeof box);//string

alert(box.name);//undefined

alert(box.age());//错误


new运算符写法:

var box = new String('Mr. Lee');//new运算符

box.name = 'Lee';//有效属性

box.age = function () {//有效方法

return 100;

};

alert(box);//Mr. Lee

alert(box.substring(2));//. Lee

alert(typeof box);//object

alert(box.name);//Lee

alert(box.age());//100


以上字面量声明和new运算符声明很好的展示了他们之间的区别。不管字面量形式还是new运算符形式,都可以使用它的内置方法。并且Boolean和Number特性与String相同,三种类型可以成为基本包装类型。


Boolean布尔对象类型:

Boolean类型是布尔值创建的引用类型。创建Boolean类型,可以使用Boolean构造函数去创建,并传入true或者

false参数。如:var booleanObject = new Boolean(true);


注意:在布尔表达式中使用Boolean对象,我们可能会出错的一些地方,如:

var booleanObj = new Boolean(false);

var result = booleanObj && true;

console.log(result);

结果是true,因为booleanObj是一个对象,在布尔表达式中,所有的对象都会被转换为true。记住:引用类型的布尔值,其实是对象。当然,我们不推荐这么用(不推荐用引用类型的布尔值来判断布尔表达式)


Number类型

Number类型是数字值创建的引用类型。创建Number类型,使用Number类型的构造函数,可以传递数字值参数,如:

var numberObj = new Number(1024);


numberObj.toFixed()方法:

可以接受一个数值,表示保留的小数的个数(会自动四舍五入)。如果要处理价格问题或者增长率问题,即保留多少为小数,用这个方法非常有效。

var numberObj = new Number(1024.153);

console.log(numberObj.toFixed(2));//1024.15

console.log(numberObj.toFixed(1));//1024.2


String类型

String类型是字符串值创建的引用类型。String类型创建的方式,使用String构造函数创建,可以传入字符串参数;如:

var stringOjb = new

String(“hello,1024idea”);

String类型的每个实例都有一个length属性,用于计算字符串的长度(即字符串中包含多少个字符)。


字符方法:charAt(),charCodeAt(),接受一个数字参数,返回某个数字索引位置的字符或字符编码。

var str = "hello,1024idea";

console.log(str.charAt(4));//o

console.log(str.charCodeAt(4));//111

console.log(str[4]);//o


字符串的操作方法:concat(),可以将多个字符串连接起来。返回得到的新字符串。实践中,我们平时用的多的还是用“+”去拼接字符串。

var str1 = "hello,";

var str2 = str1.concat("1024idea");

console.log(str2);//hello,1024idea


3.常见问题

引用类型与基本包装类型的区别?

在于对象的生命周期。使用new关键字创建的引用类型的实例,对象在当前作用域都存在。而基本包装类型自动创建的对象则在对象被调用的时刻存在,调用完毕后,就被销毁不存在了。


引用类型,也就是对象类型。创建好对象可以调用这个对象下的方法有Object类型,function类型等。

使用new关键字创建的构造函数与使用同名的转型函数的效果是不一样的。如:


//构造函数与转型函数返回值的区别

var str = "1024";

var strObj = new String(str);

console.log(typeof strObj);//object

var strNum = Number(str);

console.log(typeof strNum);//number


这个例子中,变量strObj保存的是object类型,而变量strNum保存的是number类型。一般情况下,是不建议手动的去创建基本包装类型的对象,因为这样经常造成的问题是,分不清自己是在处理基本包装类型还是引用类型。


4.参考文献

javaScript对象-基本包装类型的详解:
http://www.cnblogs.com/john-sr/p/5731247.html


PPT:    点击

视频:


javascript基本包装类型介绍_腾讯视频
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容