30.03.2017, 13:33
|
|
блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
|
Мне кажет, что каша в голове по поводу "странного поведения Boolean" возникла из-за двойственного предназначении оператора +, а именно:
+ addition
Складывает числовые выражения. Если оба выражения являются целыми числами, их сумма также будет выражена целым числом; если одно из выражений или оба выражения являются числами с плавающей запятой, их сумма также будет выражена числом с плавающей запятой.
Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются, а не суммируются. В противном случае, если выражение не является числом, проигрыватель Flash® Player преобразует его в число.
+ concatenation
Сцепляет (объединяет) строки. Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются.
Если оба выражения являются числами, данный оператор выполняет функцию оператора сложения.
Компилятор распознаёт, что вы имели ввиду в своём выражении.
А теперь посмотрим, что будет, если приведение логики будет с другими операторами:
123/false = 123/0 – деление на ноль;
true * "one" – умножение строк. А это как?
Ну и дальше в том же духе.
|