【阅读笔记】JavaScript - Misunderstood

最近终于有时间看看新的东西了,刚才在Slideshare上面看了一个PPT,关于JavaScript的,有些地方还是值得一看的,把一些之前没有意识到的地方记录下来先。

 

  • 原作者有个错误,"0"和"0.0"都不是假值,空字符才是假值。
  • 0.0 + "0" = "00"。这里是做字符串相加,而0.0转换成字符串是"0"。
  • 下面的代码:

var x = 9;

function foo() {
  alert(x);
  var x = 10;
  alert(x);
}

foo();

 初一看还以为输出时9和10,其实是undefined和10。这里的关键之处在于理解执行上下文中的激活对象(Activation Object),激活对象是在执行上下文对应的作用域链(scope chain)的第一个对象,它中间除了包含传入的参数的值外,还包含所有的局部变量,并且这些局部变量的值一开始都是undefined。就这个例子来说,在foo被调用的时候,激活对象被创建,x有了值undefined,所以执行第一行的alert的时候,输出undefined;接着x被赋予值10,第二个alert就输出10了。从这点出发,一个好的做法是在使用局部变量前先声明。 更多的细节可以看这篇文章

 

  • 对于onload的事件,可以在使用之后就删除掉,以释放内存。 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值