JavaScript中的====是什么含义?是《Head First JavaScript》的印刷错误吗?
核心结论
JavaScript 语言规范里压根没有连续四个等号(====)这种合法语法,这就是《Head First JavaScript》的印刷/排版错误,不是JS本身的特性。
错误是怎么来的
这类符号粘连的排版bug在《Head First》系列里真的不少见,基本都是两种排版失误搞出来的:
- 本来代码里用的是严格相等运算符
===,后面挨着的代码块开头是赋值用的=,排版的时候俩符号没留空格,直接粘到一起,看起来就成了四个等号 - 本来是上下两行独立代码,排版的时候错把两行拼到同一行:上一行代码收尾是
===,下一行开头是赋值的=,拼完就凑出了====的效果
JavaScript 合法的相等类运算符参考
对照规范就知道,JS从来没有四等号的用法,涉及相等判断的运算符总共就四个:
==:宽松相等,比较的时候会自动做隐式类型转换===:严格相等,不转类型,值和类型都一样才算相等!=:宽松不等,配合隐式类型转换判断不相等!==:严格不等,不转类型的不等判断
真把 ==== 写到能跑的JS代码里,不管是浏览器还是Node环境,直接抛语法错:Uncaught SyntaxError: Unexpected token '='
碰到这种情况怎么处理
结合这段代码的上下文看逻辑就行:如果这个位置本来是要做值比较的判断,删掉多出来的那个等号,用标准的 === 写法即可。
内容的提问来源于stack exchange,提问作者Jordan Linton
相关产品推荐
相关产品推荐

