烧了回忆取暖

文章 评论 浏览 28

烧了回忆取暖 2022-05-04 13:54:04

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 题:考察作用域的一道代码题

烧了回忆取暖 2022-05-04 13:50:15

其实就是设计模式里的工厂模式, 判断创建的对象是否存在于存列表

JavaScript 专题之函数记忆

烧了回忆取暖 2022-05-04 13:46:22

我就是来刷刷存在感滴

ES6 系列之 let 和 const

烧了回忆取暖 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 

也是可以的

第 50 题:实现 (5).add(3).minus(2) 功能

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文