烧了回忆取暖 2022-04-30 07:44:24
Number.prototype.add = function (number) { if (typeof number !== 'number') { throw new Error('请输入数字~'); } return this + number; }; Number.prototype.minus = function (number) { if (typeof number !== 'number') { throw new Error('请输入数字~'); } return this - number; }; console.log((5).add(3).minus(2));
扩展
Object.prototype.add Object.prototype.minus
也是可以的
- 共 1 页
- 1
undefined 10 20
代码执行过程:
var a; // undefined
a = 10;
(function () {
var a; // undefined
console.log(a)
a = 5
console.log(window.a)
a = 20;
console.log(a)
})()
首先这段代码有两个作用域,window和function。在function作用域内,同样存在变量提升,当第一次console时,这时变量a只定义未赋值,所以打印undefined。在window作用域中,a的值为10,所以window.a的值为10。最后一次打印之前,a被赋值为20,所以打印结果为20。
问题:
其实在这里,我不是很理解window和function这两个作用域之间的关系,希望能看到详细的解说~~~
第 41 题:考察作用域的一道代码题