0 Comments

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

发布于:2013-10-10  |   作者:广州网站建设  |   已聚集:人围观

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 标准进行二进制浮点运算,不过,对整数计算是没问题的。
广州网站建设,网站建设,广州网页设计,广州网站设计

标签:
飞机