龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

JavaScript最让人费解的十件事(1)(2)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
6. 不一致的函数范围 参看以下代码: 498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="不一致的函数范围" width="602" height="443" src="http://www.1

6. 不一致的函数范围

参看以下代码:

不一致的函数范围

foo(bar.method) 返回结果不同原因是,method 函数是被当作 windows 对象,而不是 bar 下的对象调用的。要解决这个问题,我们必须从传递的匿名函数中调用 bar.method() 。

7. 位操作符

JavaScript 和 Java 有不少共同之处,如位操作:

  1. ◦& - and  
  2. ◦| - or  
  3. ◦^ - xor  
  4. ◦~ - not  
  5. >> - signed right shift  
  6. ◦??? - unsigned right shift  
  7. << - left shift 

看看第一个 & 操作符,使用 && 应该更有效,因为 JavaScript 和 Java 不一样,JavaScript 没有整数,需要来回转换,因此,转换操作花的时间更长。

8. 太多的空值类型

诸如 null, false, undefined 一类的值几乎表示同样的意思,它们之间的不同又让人很迷惑。

9. 算术问题

虽然JavaScript包含很多算术操作,但你不妨运行一下下面的算式,".2+.4" 应该等于 ".6" 是不是,然而返回的确是 "0.6000000000000001"。JavaScript 在小数计算访问存在一些小问题。

JavaScript算术操作

为什么会这样?简单说,因为 JavaScript 使用 IEEE 标准进行二进制浮点运算,不过,对整数计算是没问题的。

精彩图集

赞助商链接