Почему неправильное написание в str.length не показывает ошибку в JS - PullRequest
0 голосов
/ 29 июня 2018

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

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

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

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

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);
0 голосов
/ 29 июня 2018

Значение «что-то» .lenght (или что-то действительно, «что-то» .foobar) будет « undefined » (примерно эквивалентно нулю).

Это не выдает исключение, как это было бы с некоторыми другими языками

...