为什么 str.length 中的拼写错误在 JS 中不显示错误

Why wrong spelling in str.length doesn't show an error in JS

我是初学者javascript开发者,我写了这段代码:

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

但是我写foo.length的时候写错了,写了foo.lenght,但是在控制台却没有显示错误,为什么呢? It doesn't show an error

"something".lenght(或任何东西,"something".foobar)的值将是“undefined”(大致相当于 null)。

它不会像其他一些语言那样抛出异常

foo.lenght 不会引发错误,但会 return undefined。这样做的原因是 foo 是一个 String 类型的变量,当它尝试调用 属性 lenght (无效)时,它不会在它的原型。因此,它 return 带有 undefined 而不是错误。

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

但是,如果您尝试访问 foo.lenght 中的其他属性,比如 foo.lenght.len 那么这会给您错误,因为此时 foo.lenghtundefined 并且它尝试读取 undefined 类型的 属性。

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