JavaScript模式 --- 札记

全局变量的问题

创建隐式全局变量的反模式是带有var声明的链式赋值。在下面的代码片段中, a 是局部变量, b 是全局变量,这也许并不是你想要的

function foo(){
  var a = b = 0; //var a   window.b;

  // ....
}

//造成上面的原因是源于从右至左的操作符优先级。首先,优先级较高的是表达式 b=0, 此时b未声明。表达式的返回值为0,它被赋给 var 声明的局部变量 a.
/* 建议这样做 */ function foo(){   var a, b;   // ...   a = b = 0; // 均为全局变量 }

 

保留字

保留字不能被用来命名变量或参数,当保留字被用做对象字面量的键值时,它们必须被引号括起来。 它们不能被用在 . 点表示法中,所以有时候必须使用括号表示语法。

1     var method;                 // ok
2     var class;                  // 非法
3     object = {box: value};      // ok
4     object = {case: value};     // 非法
5     object = {"case": value};     // ok
6     object.box = value;         // ok
7     object.case = value;        // 非法
8     object['case'] = value      // ok

 

转载于:https://www.cnblogs.com/juhualang/p/3753625.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值