js中查找对象的属性时会沿着原型链查找,原型链的顶点是null,如果找不到为什么返回的是undefined,而不是报错
原型链的顶端应该理解为 obj.__proto__
,obj.__proto__.name
也是 undefined。
obj.__proto__.__proto__
是null,正好说明 obj.__proto__
才是顶端,它的上面没有东西了
这个希望博主可以通过搜索引擎搜索javascript null和undefined的区别 然后相信你就能找到答案了。
简单说几点:
1、null是关键字;
2、undefined是javascript运行时才会创建的变量;比如你定义一个变量未赋值,结果就是undefined;
3、使用 console.log(typeof(undefined)); console.log(typeof(null)); 你能明显看到前者返回的是undefined、后者返回的是object。
4、运算符中二者表现也不一致,可以自行验证。