首页 > 代码库 > js学习笔记之包装对象

js学习笔记之包装对象

JavaScript包装对象

近日有时间,闲下来好好学习原生js

JavaScript是一门面向对象语言,使用”.”就可以访问对象的属性和方法,而基本类型(null, undefined, bool, number, string)应该是值类型,怎么会有属性和方法。

但是 

var s="string";
console.log(s.length);//6
console.log(s.indexOf(‘i‘));//3

于是去翻阅资料

JavaScript可以很灵活的将一种类型转换为另一种了类型,当引用了字符串s的属性,JavaScript就会将字符串值通过调用new String(s)的方式转换成对象,这个对象继承了字符串的方法并用来处理属性的引用。上面代码在使用的实际上是String对象的length属性和indexOf方法,一旦属性引用结束,这个新创建的对象就会销毁。

这也是频繁处理字符串效率低的一个原因。

String

String对象拥有很多方法

  • charAt
  • charCodeAt
  • concat
  • fromCharCode
  • indexOf
  • lastIndexOf
  • match
  • replace
  • search
  • slice
  • split
  • substr
  • substring
  • toLowerCase
  • toUpperCase
var s=‘string‘;
s.words=6;
console.log(s.words);

执行这段代码,输出结果是undefined。

第二行,调用s字符串的属性,于是JavaScript创建一个临时字符串对象,并对该words属性赋值,随后销毁这个对象。

第三行,尝试读取s的属性,又会创建一个新的临时字符串对象,这个对象自然没有words属性。

在读取字符串的属性值的识货,表现得像对象一样,但如果你给其赋值,则会被忽略。修改只是发生在临时对象上,而这个对象随后会被销毁。

存取字符串,数字或布尔值的属性时创建的临时对象称为“包装对象”

 

js学习笔记之包装对象