“=”和“===”之间的Javascript差异

这个问题在这里已经有了答案:

  • 在JavaScript和=== ===之间的差异[复制] 2个答案

  • 您需要使用=====进行相等性检查。 =是赋值运算符。

    你可以在这里阅读有关MDN的赋值运算符。


    我假设你知道=是用于赋值的,毕竟你在第一行中已经使用赋值了:

    var testTest = function(answer) {
    

    我认为你认为这不会在这里比较任何东西(或者是你?)。

    问题仍然存在,为什么= in if (answer = "doggies") “not work”?

    分配是一个表达式。 该表达式的结果是分配的值。 在这里, answer = "doggies"的结果是"doggies" ,即你本质上运行if ("doggies")

    JavaScript执行类型强制 。 这意味着它根据特定规则自动将一种数据类型的值转换为不同数据类型的值(如有必要)。

    if语句的条件必须解析为布尔值。 但是在这里你使用一个字符串值作为条件。 字符串 - >布尔转换规则非常简单:

  • 空字符串转换为false
  • 非空字符串转换为true
  • 因此,在类型转换之后,该语句等同于if (true) ,因此它将始终执行第一个块,而不会执行else块。


    作为您学习JS的快速参考:

    =   assignment operator
    ==  equal to
    === equal value and equal type
    
    !=  not equal
    !== not equal value or not equal type
    
    链接地址: http://www.djcxy.com/p/19441.html

    上一篇: Javascript difference between "=" and "==="

    下一篇: Comparing values in javascript