浏览 5372 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-03
对象,数组和函数用引用进行比较。只有两个变量指向同一个对象时才相等。如果想比较不同对象里的值是否相等,需要自定义方法。 === identity operator 标志位判断? 如果两个值的类型不同,则不同 如果两个值是number并且值相同,除非等于NaN,则相同。 如果两个值是strings并且值相同,则相同。注意string是每个字节进行比较,如果编码不同需要用String.localeCompare()。 如果两个值是boolean并且值相同,则相同 如果两个值都是null或者都是undefined,则相同 == equality operator 如果两个值的类型相同,则等同于用===判断 如果两个值类型不同 *如果一个是null,一个是undefined,他们等同 *如果一个是string,另一个是number,则将string转成number再比 *如果有一个值是TRue,则转成1再比。false转成0 *如果有一个是object,则用toString()或valueOf()进行转换再进行比较 *Any other combinations of values are not equal.? Java的==好像和JavaScript的===比较相似,都是比较引用对象的ID,而不是比较引用对象的值。在Java如果需要比较对象值,则需要自定义equals。Scala的==则比较像Java的equals。 equals是个充满陷阱的地方,要小心! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-11-06
所以还是用三个等号的比较保险。
|
|
返回顶楼 | |
发表时间:2009-11-07
js中如果你只是想单纯的比较值的话,==就可以了
===是类型和值一起比较 |
|
返回顶楼 | |
发表时间:2009-11-09
受教了,以前还真没注意过
|
|
返回顶楼 | |
发表时间:2010-04-08
终于让我理解了三个等号
|
|
返回顶楼 | |