Почему неправильное написание в str.length не показывает ошибку в JS

Я начинающий разработчик javascript, я написал этот код:

var foo = "sunny";
var longitudInt = foo.length;
console.log("The length of " + foo + " is " + longitudInt);

Но когда я написал foo.length, я сделал орфографическую ошибку и написал foo.lenght, но это не показало ошибку в консоли. Почему? Ошибка не отображается


person Renny Jose Galindez Fontecha    schedule 29.06.2018    source источник


Ответы (2)


foo.lenght не вызовет ошибку, но вернет undefined. Причина этого в том, что foo является переменной типа String, и когда он пытается вызвать свойство lenght (которое недопустимо), он не получает его в своем прототипе. Таким образом, вместо ошибки возвращается undefined.

var foo = 'str';
console.log(foo.lenght);

Однако, если вы попытаетесь получить доступ к другим свойствам в foo.lenght, скажем, foo.lenght.len, это даст вам ошибку, потому что в это время foo.lenght является undefined и пытается прочитать свойство типа undefined.

var foo = 'str';
console.log(foo.lenght.len);

person Ankit Agarwal    schedule 29.06.2018

Значение "something".lenght (или что-то на самом деле, "something".foobar) будет "undefined" (примерно равно нулю).

Он не генерирует исключение, как в некоторых других языках.

person Alexandre Beaudet    schedule 29.06.2018