IT修真院-前端

javascript基本包装类型介绍

2017-08-01  本文已影响0人  我叫于搞吧


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基本包装类型介绍_腾讯视频
上一篇下一篇

猜你喜欢

热点阅读