JavaScript 判断表达式的那点事

    首先很不好意思的用了一个“判断表达式”的词,别细纠。嘿

    我们用这样的一个例子开始:

0 == ""   //true
0 === ""  //false

     显然,这样的测试没有意思。一眼就看到结果了。==是等于 ===是全等。JavaScript在逻辑判断时,如果表达式使用的是 == 那么,表达式就会被强类型转换。 而===不会干这事。所以得到了以上结果。

    回到==强类型转换问题,灰鸽给我们总结的非常好,给大家分享下:

   左值为数字,右值转数字。左值为字符串,右值传字符串。

   这时候教主大大( Franky )说了:

    左值的概念来源于 内存地址 以及其对应的值.因为描述他们总是不方便 所以才诞生左值 的概念衍生出 赋值语句  中.赋值运算符左边的表达式 evaluate后 总是产生一个左值. 在ecmascript中 喜欢用 reference type 来代替它。

   如教主所云灰鸽的“左值”值得商榷。

   说到这强类型转换这事,不得不提醒一个东西:

      !! new String("0") ->  true  但是  !! "0" -> false

      !! new Array() ->  true

      !! [] -> true

      由于文叔功力浅薄,故而暂无法跟大家细说其中缘故。就不知道看官如何意会了,嘿嘿。

posted @ 2011-06-26 00:15  Darrel.Hsu  阅读(657)  评论(1编辑  收藏  举报