js构造函数返回基本类型值, 获取其不存在的属性, 结果为undefined而没有报错

Rencoo
  • 41

构造函数返回基本类型值时, 求其不存在的属性, 结果为 undefined 而没有报错

相关代码

function F3() {
    this.name = 'f3';
    return 5;
}

console.log(new F3()); // 基本类型值, 仍旧返回构造函数的实例 {name: f3}
console.log(new F3().name); // f3
console.log(F3()); // 5 当正常函数执行
console.log(F3().name); // 5.name >> undefined ????

运行以下

console.log(5.name) // 报错 Uncaught SyntaxError: Invalid or unexpected token
回复
阅读 1.7k
2 个回答
✓ 已被采纳

前面返回基本类型
在new的时候返回基本类型,new 出来的还是里面的"this"~~

下面的话你是做函数调用

(函数调用的时候this.name实际上会隐式给window赋值了个name)提醒~

直接数字.
5.不能识别出究竟是小数点还是.属性
所以(5).name这样子是为了过解析 5..name同理 5.0.name同理

对 (不是null和undefined的) 值的不存在的属性解引用本就不报错

后一个是语法错误不是运行时错误, (5).name 也不报错

宣传栏