[学习笔记]Javascript的包装对象

例子1:

var s="test";
s.len = 4;
var t = s.len // t is undefined

原因是s是字符串,第二行代码,实际上是创建一个临时字符串变量,并给其len属性赋值为4,第三行代码通过原始的字符串值创建一个新的字符串对象,然后再去读len属性,当然就没有了啦。

例子2:

var s ="hello,world";
var word = s.substring(6,s.length);//"word"

字符串不是对象,怎么会有属性呢?只要引用了字符串s的属性,Javascript就会将字符串值通过调用new Sring(s)的方式转化成对象,这个对象继承了字符创的方法。

例子3:

var s =  new String("javascript");
var len = s.length; //len = 10

这个属性显式地new了一个对象实例。

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

存取字符串,数字或者布尔值的属性时创建的临时对象称作包装对象,可以通过String(),Number()或Boolean()构造函数来显式创建包装对象。var s = "test"; n = 1; b = true;

var S =  new String(s);
var N = new Number(n);
var B = new Boolean(b);

s == S; //true
n == N; //true
b == B; //true

s === S; //false
n === N; //false
b === B; //false
typeof(s) //"string" typeof(S) //"object" typeof(n) //"number" typeof(N) //"object" typeof(b) //"boolean" typeof(B) //"object"

Javascript会在必要时将包装对象转化成原始值。“==”等于运算符就将原始值和其包装对象看成相等,但“===”就得比较是否相同类型,相同值才行。 

  

原文地址:https://www.cnblogs.com/fanbi/p/7202671.html