最近记录了各种各样的标识符 “同名” 现象,有 Javascript中同名标识符优先级
和 表单中有name为action的元素时,取form的属性action杯具了
。
最近又碰到一个,后台同事返回了如下的JSON结构:
{default:{name:'jack'}}
在IE6/7/8中出错了,调试了很久才发现原因。
细心的朋友获取已经发现了,default不是JS的关键字吗?可以作为属性吗?有的或许绝对的说当然不行。
测试下:
var obj = {default:555}; alert(obj.default);
?
可看到在IE6/7/8/Safari/Opera中提示语法错误,无法正常运行。但IE9beta/Firefox/Chrome则弹出了“555”,正常。
如果改成[]方式获取,各浏览器表现同上。
虽然在IE9beta/Firefox/Chrome中关键字可作为对象属性,但坚决杜绝此类写法...
?
?
?
?