手记

【金秋打卡】第9天 全局对象:globalThis

课程名称:JavaScript ES(6-11)全版本语法 每个前端都需要的基础课

课程讲师: 谢成

课程内容:
全局对象:globalThis

课程收获:

globalThis旨在通过定义一个标准的全局属性来整合日益分散的访问全局对象的方法。该提案目前处于第四阶段,这意味着它已经准备好被纳入ES2020标准。所有流行的浏览器,包括 Chrome 71+、Firefox 65+和 Safari 12.1+,都已经支持这项功能。你也可以在Node.js 12+中使用它。通过使用globalThis,你的代码将在 window 和非 window 上下文中工作,而无需编写额外的检查或测试。在大多数环境中,globalThis直接引用该环境的全局对象。但是,在浏览器中,内部使用代理来考虑iframe和跨 window 安全性。 实际上,它并不会改变我们编写代码的方式。
另一方面,如果你确定你的代码将在什么环境中使用,那么可以使用现有的方法来引用环境的全局对象,这样就不必为globalThis包含一个polyfill了。

const getGlobal = () => {
    if (typeof self !== 'undefined') {
        return self
    }
    if (typeof window !== 'undefined') {
        return window
    }
    if (typeof global !== 'undefined') {
        return global
    }
    throw new Error('无法找到全局对象')
}
const global = getGlobal()
console.log(global)

console.log(globalThis)

谢谢老师,讲的非常细致,很容易懂。这一节学的是全局对象:globalThis,给以后的学习打下了基础。
原来ES6-11能有这么多种性质,以及对ES6-11有了新的认识,期待后边的学习

0人推荐
随时随地看视频
慕课网APP