для чего такая нестыковка в javascript при использовании математических операторов?
Я понимаю что по правилам языка javascript при сложении:
'4' + 2 // получаем строку '42', цифра 2 преобр. в строку! но при аналогичном действии со знаком минус: '4' - 2 // получаем число 2, строка '4' пеобраз. в число! Вопрос: я знаю что такие правила, но все же для чего такая нестыковка, есть ли логика? <script> alert(typeof('4' + 2)); // string alert(typeof('4' - 2)); // number alert(typeof('4' * 2)); // number alert(typeof('4' / 2)); // number </script> |
vitek-82, потому что оператор "+" не только для математических манипуляций, но ещё и для сложения строк. В данном случае, идёт прибавление значения к строке.
|
Кaк-то хотелось расширить все эти операторы.
Так, если "+" - конкатенация строк, то: "abcdef" - 3 -> "abcdef".substr(0, "abcdef".length - 3) "abc" * 3 -> "abc".repeat(3) "abc" / "b" -> "abc".split("b") "abc" % "b" -> "abc".indexOf("b") и т.д.:-? P.S.: Почему-то, за 60 лет существования ЯВУ, додумались лишь конкатенацию закрепить за "+"… И то в некоторых языках. Степень "**"-Фортрана как-то не популярно. Хотя, возводить "строку" в степень - было бы прикольно! (Некоторые Си-проекты перегружают операторы под строки, но это не приветствуется. Может, из-за отсутствия договорённости? Мол, легче освистать и запретить, чем собраться, сесть и выработать постулаты.) |
Часовой пояс GMT +3, время: 00:03. |