Каким образом js возводит строку в квадрат? Раньше я прогал на питоне, поэтому непривычно видеть такое let b = '2'; console.log(b**2); // Вывод: 4 JS let b = '2'; console.log(b**2); // Вывод: 4 Я знаю, что ** возведение в степень. Я говорю о том, что в питоне чтобы возвести число в квадрат тебе нужно intовое число, а в js я возвожу строку
морфий, Я знаю, что ** возведение в степень. Я говорю о том, что в питоне чтобы возвести число в квадрат тебе нужно intовое число, а в js я возвожу строку
js как и pyhton является языком с динамической типизацией. Ты производишь математическую операцию со строкой, затем js пытается изменить тип переменной на number и делает операцию https://learn.javascript.ru/type-conversions
mdn, Ну вообще, допустим если ввести этот же код в питоне, то он выдаст ошибку . Я так понимаю это просто особенность js, что он может строку преобразовать в число, если производишь какую-то математическую операцию
Нэнси, все верно, это особенность js. Если тебе такое не нравится, то советую глянуть в сторону typescript, тоже самое, но со строгой типизацией
ну в жсе это норма, как посчитает нужным так и делает, для мат операций если строка число, то походу решает делать умножение. А может это только для возведения в степень. Все сделано для уникумов, чтоб работало при любой хуйне
у js -слабая типизация, т.е. допустимы неявные преобразования, у python - сильная https://habr.com/ru/articles/161205/
Jonhui, я понял, к чему это ты сказал, человек не был знаком с неявными преобразованиями, т.к. работал только с сильной типизацией
Работает преобразование типов. Ты же пытаешься возвести строку в степень. Это математическая операция. Если это математическая операция он попытается преобразовать строку в число, и после возвести в степень.