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);