Re[3]: Нужны ли нам типы?
От: Privalov  
Дата: 16.06.20 05:43
Оценка:
Здравствуйте, Hobbes, Вы писали:

H>Здесь проблема не в том, что нет типов, типы как раз есть. Здесь проблема в неявном преобразовании типов, например оператор минус явно работает с числами, и неявное преобразование строки в число, которое подгоняет типы операндов к тем, которые принимает оператор минус, и есть корень зла. То же самое с плюсом, он определён для строк как конкатенация, поэтому неявное преобразование второго операнда в строку даёт wtf-эффект.


Ну да, слабая типизация во всей красе.
Такое впечатление, что JS сделан так, чтобы программы на нем никогда не падали. Это даже круче VB6, в котором, по крайней мере, надо было on error resume next писать.

В принципе, подобное и в шарпе прокатит. Но только в редких случаях. И если заменить + на — после строковой переменной, программа свалится. А если между 2 и 3, то отработает.
using System;
public class Program
{
    public static void Main()
    {
        Console.WriteLine(2 + 3 + "a" + 8 + 5);
    }
}

А JS в любом случае отработает. Боюсь себе представить, как он себя в более сложными, чем числа, объектами ведет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.