JavaScript包装对象
JavaScript是面向对象的语言,使用”.”操作符可以访问对象的属性和方法,而对于基本类型(null, undefined, bool, number, string)应该是值类型,没有属性和方法,然而
var s = 'test'; var s1 = s.substr(2);
结果很简单,但是仔细想想还真奇怪,string不是值类型吗!怎么又有属性又有方法的!事实上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而可以让我们调用一些方法。上面的哪行代码实际上是按照下面的代码执行的
var s=new String('test');
var s1=s.substr(2) ;
s=null引用类型与基本包装类型的主要区别就是对象的生存期。new实例,在执行流离开当前作用域之前保存在内存中;而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间
只要是引用了字符串的属性和方法,JavaScript就会将字符串值通过new String(s)的方式转为内置对象String,一旦引用结束,这个对象就会销毁。所以上面代码在使用的实际上是String对象的length属性和indexOf方法。
同样的道理,数字和布尔值的处理也类似。,null和undefined没有对应对象。既然有对象生成,能不能这样
var s='this is a string'; s.len=10; alert(s.len);
结果并没有返回10,而是undefined!不是说好了是个对象吗!正如刚才提到第二行代码只是创建了一个临时的String对象,随即销毁,第三行代码又会创建一个新的临时对象(这就是低版本IE频繁处理字符串效率低的一个原因),自然没有len属性。这个创建的临时对象就成为包装对象。没想到一行简单的代码还包含这么多姿势。
内置对象
Boolean
Boolean 对象表示两个值:"true" 或 "false"。当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象。如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成一个原始的布尔值,并且返回这个值,如果省略 value 参数,或者设置为 0、-0、null、""、false、undefined 或 NaN,则该对象设置为 false。否则设置为 true(即使 value 参数是字符串 "false")。
Boolean 对象包括 toString 和 valueOf 方法, Boolean 最常用于在 条件语句中 true 或 false 值的简单判断,布尔值和条件语句的组合提供了一种使用 JavaScript 创建逻辑的方式。
Number
Number对象是一个数值包装器,该对象包含几个只读属性
MAX_VALUE:1.7976931348623157e+308 //JavaScript能够处理的最大数MIN_VALUE:5e-324 //JavaScript能够处理的最小数NEGATIVE_INFINITY:-Infiny //负无穷POSITIVE_INFINITY:Infinity //正无穷NaN:NaN //非数字
Number 对象还有一些方法,可以用这些方法对数值进行格式化或进行转换
toExponential //以指数形式返回 数字的字符串表示toFixed //把Number四舍五入为指定小数位数的数字toPrecision //在对象的值超出指定位数时将其转换为指数计数法toString //返回数字的字符串表示valueOf //继承自object
String
String 对象是文本值的包装器。除了存储文本,String 对象包含一个属性和各种 方法来操作或收集有关文本的信息,String 对象不需要进行实例化便能够使用。
String 对象只有一个只读的length属性用于返回字符串的长度。String对象拥有很多方法
charAt;求第i个位置的字符charCodeAtconcatfromCharCodeindexOflastIndexOfmatchreplacesearchslicesplitsubstrsubstringtoLowerCasetoUpperCase
包装对象
除了上面三个对象,JavaScript还拥有Date、Array、Math等内置对象,这三个经常显示使用,所以非常熟悉,知道了内置对象就可以看看上面例子是怎么回事儿了。
Math.max(1,10,0);
Math.min();
Math.sqrt();//返回Num的平方根
Math.abs(num);//返回Num的绝对值
Math.ceil();//向下舍入
Math.floor();//向上舍入
Math.round();//四舍五入
Math.random();//返回一个(0,1)之间的随机数,利用这个方法,返回某个整数范围内的随机数值 = Math.floor(Math.random()* 总数 + 第一个可能的数)
例如: var num = Math.floor(Math.random()*10+1);//1~10之间的整数

本文深入解析JavaScript中基本类型转化为包装类型的过程,详细解释String、Number、Boolean三种内置对象的特点与用法,以及如何在代码中正确使用它们的属性和方法。同时,文章还介绍了JavaScript中的内置对象如Date、Array、Math等,并通过实例展示了它们的常见用途。
1万+

被折叠的 条评论
为什么被折叠?



