你的位置:首页 > Java教程

[Java教程]JavaScript之包装对象


  JavaScript对象是一种复合值:它是属性和已命名值的集合。通过"."符号来引用属性值。当属性值是一个函数时,称为方法。

①一段你常用但却未必明白其真正底层原理的代码:

var s = "hello world!";var word = s.substring(s.indexOf(" ")+1,s.length);

 

  如前面所说,这里变量s只是一个字符串原始类型,它怎么会有属性(s.length)和方法(s.indexOf()、s.substring())呢?没错,这正跟我们正要介绍的包装对象有关。原因是:只要引用了字符串s的属性,JavaScript就会将字符串值通过调用new String(s)的方式转换成对象,这个对象继承了字符串(String)对象的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会被销毁。

  同字符串一样,数字和布尔值也有各自的方法:通过Number()和Boolean()构造函数创建一个临时对象。存取字符串、数字或布尔值的属性时创建的临时对象就是包装对象。5种原始类型中的剩余两种null和undefined没有包装对象:访问它们的属性会造成一个类型错误(Uncaught TypeError)。明白了上面的代码,那么再看如下代码:

var s = "test";s.len = 4;//给它设置一个属性var t = s.len;

  不认真的同学这里就会认为最后t就是等于4了。难道最后t不等于4吗?是的,最后t的值是undefined。想知道为什么请看继续看解析:原来以这里第二行代码只是创建了一个临时字符串对象,并给len属性赋值为4,随即销毁这个对象。而第三行又是通过原始字符串s创建一个新字符串对象(这个不是第二行代码创建的对象,第二行代码创建的对象已经被销毁了)并尝试读取其len属相,这个属性自然不存在,因此表达式的结果为undefined。这段代码说明了在读取字符串、数字和布尔值的属性值或方法(实际上是它们对应包装对象的属性值或方法)表现的像对象一样。但如果你试图给属性赋值,则会忽略这个操作:修改只是发生在临时对象身上,而这个临时对象并不会继续保留下来。

  注意:可通过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);//一个布尔对象

  JavaScript会在必要时将包装对象转换成原始值,因此上段代码中的对象S、N和B常常但不总是表现的和值s、n和b一样。"=="等于运算符将原始值和其包装对象视为相等,但“===”全等运算将它们视为不等。通过typeof运算符也可以看到原始值和其包装对象的不同:

    ①typeof(s);  ->"string"

     typeof(S);  ->"object"

    ②typeof(n);  ->"string"

     typeof(N);  ->"object"

    ③typeof(b);  ->"string"

     typeof(B);  ->"object"

  

 

  




越南旅游哪里好玩呢越南旅游签证怎么办理越南旅游去哪好越南旅游团报价优惠越南蜜月旅游行程参考史上最豪华的监狱 这显然是星级旅馆嘛(全文) 2015广州除夕之夜哪里有倒数活动?除夕广州跨年倒数活动介绍? 2015春节南海影视城过年有什么好玩活动?佛山南海影视城过年有表演吗? 新会过年去哪玩?2015春节新会适合小孩玩的地方? 陵水火车站到分界洲岛班车时间?陵水火车站到分界洲岛专线车最早的一班几点? 三亚西岛怎么去蜈支洲岛?三亚西岛最早什么时间开船? 三亚西岛到蜈支洲岛有多远?三亚西岛船票多少钱? 三亚湾怎么坐车到呀诺达热带雨林?三亚湾到呀诺达雨林直达车时间? 夏季云南旅游攻略游记 泡温泉有什么要注意的? 韶关三日游攻略纪实 广西阳朔四日三晚旅游攻略 厦门哪里有双人单车可以租?大概租金是多少? 十月份国内有哪些旅游景点适合旅游? 为什么鼓浪屿又叫琴岛? 厦门哪个沙滩人少又好玩的? LD035A750JAB2A Datasheet LD035A750JAB2A Datasheet 0402YA470JAJ2A Datasheet 0402YA470JAJ2A Datasheet SQCB7M470JAJWE Datasheet SQCB7M470JAJWE Datasheet 新疆旅游经典线路 新疆旅游经典线路 新疆旅游经典线路 新疆喀纳斯旅游报价 新疆喀纳斯旅游报价 新疆喀纳斯旅游报价 新疆旅游的线路 新疆旅游的线路 新疆旅游的线路