JavaScript 秘密花园

参考 Javascript密码花园 http://www.jb51.net/onlineread/JavaScript-Garden-CN/

对象 {}

null 和undefined 不是对象,其他的都是对象。需要注意的是数字直接量,因为javascript数字直接量采用浮点型

所以类似 2.tostring() 会出错, 而2..toString() 则是正常的(ECMAScript3,暂不知道5有没有针对这个问题做处理),但是可以采用(2).toString()解决这个问题

对象的创建

有以下三种形式:
1.var foo = Object.create(Object.prototype);
     Object.create(null).toString() 会报错,因为创建了一个空对象。
2.var foo = {};
3.var foo = new Object();

属性的查询与设置

有两种方式可以用来访问对象的属性,(.)点操作符和( [ ] )中括号操作符。
var foo = {name:Jocelyn};
foo.name; //Jocelyn
foo['name'] ; // Jocelyn

两种语言是等价的但是数组运算符可以用于动态设置属性和属性名不是有效的变量名的情况(ECMAScript3点操作符后不允许是保留字,ECMAScript5才对此放宽了限制),看一个例子
var address = “”;											
for(var i = 0; i < 4; i++) {    									 
address += customer[‘address' + i];								
}
此处就可以配合其他变量来动态的设置值和取值了。

查询不存在的属性不会报错,.查询属性的对象不存在的情况下会报错
避免错误的方法 
var len = foo && foo.name && foo.name.length  //利用&&运算符的短路属性

设置属性报错的情况有如下几种:
     1.给只读属性赋值
     2.o是P中继承来的属性,不能通过设置自身同名属性去覆盖只读属性
     3.对象为不可扩展

对象继承

对象是基于原型链的继承 ,只在属性
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值