javascript权威指南--全局对象与包装对象

3.5 全局对象
全局对象是预定义的对象。通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。全局对象不是任何对象的属性,所以它没有名称。全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象。

可通过this引用全局对象

var global=this//定义一个引用全局对象的全局变量

全局属性:undefined,infinity,NaN
3.6 包装对象
javascript对象是一种复合值:他是属性或已命名值的集合;

varv s="hello word!";
var word="s.substring(s.indexOf("")+1,s.legth);
//substring:Returns the characters in a string between two indexes into the string.
//indexOf:Returns the index within the calling String object of the first occurrence of the specified value.
//occurrence:happen;

只要引用了字符串的属性,javascript就会将字符串通过调用new string()的方式转换为对象,这个对象继承了字符串的方法

注意以下代码

var s="test"
s.len=4;
var t=s.len;

t==undefined
s.len=4;之后随即销毁这个对象
var t=s.len;找不到对象,返回值为未定义

在读取字符串,布尔值,和数字的属性值(方法)时,表现的和对象一样,但如果试图给其赋值,则会忽略此操作:修改发生在临时对象上,临时对象被销毁。
存取字符串,数字,或布尔值的属性时创造的对象为包装对象
注意
字符串,数字,布尔值的属性是readonly的,因此有别于一般对象
解决方法
通过以下对象构造函数来显式创建包装对象

var s="test",n=1,b=ture;
var S=new String(s);
var N=new Number(n);
var B=new Boolen(b);

通过typeof() 将原始值和包装对象显示的不一样;

你可能感兴趣的:(javascript)