Если вы видите ассоциативность оператора ==
, это left-to-right
.Таким образом, в вашем случае
когда var a = ['a','a','a'];
a[0]==a[1]==a[2]
это сначала оценивает a[0]==a[1]
, а затем результат с a[3]
означает true == 'a'
, который возвращает false
.
В случае, когда var a = ['1','1','1'];
так что по ассоциативности это оценивается слева направо в выражении a[0]==a[1]==a[2]
результаты '1' == '1'
сначала, затем true == '1'
во втором, что дает true
наконец.
В случае, когда var a = ['9','9','9'];
первое '9' == '9'
затем true == '9'
, что в конечном итоге оценивается как ложное.Надеюсь, это поможет.