// 方法一 (typeof window !== 'undefined' ? window : (typeof process === 'object' && typeof require === 'function' && typeof global === 'object') ? global : this); // 方法二 var getGlobal = function () { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } throw new Error('unable to locate global object'); };
ES2020 在语言标准的层面,引入globalThis作为顶层对象。也就是说,任何环境下,globalThis都是存在的,都可以从它拿到顶层对象,指向全局环境下的this。
垫片库global-this模拟了这个提案,可以在所有环境拿到globalThis。
下面是其它网友的补充
let是ES6里面新的复制命令,let赋值命令只可以在{}代码块中被调用。下面通过实例给大家讲解es6中的let命令,具体内容如下所示:
1.let命令的用法和var命令类似,但let命令声明的变量只在let所在的代码块内有效
{ let a=10; var b=1; } console.log(a);//Uncaught ReferenceError: a is not defined console.log(b);
2.let命令不存“声明提前”现象,因此变量一定要先声明,后使用
console.log(foo); console.log(bar); var foo=2;//undefined let bar=3;//Uncaught ReferenceError: bar is not defined
3.只要当前块级作用域内存在let命令,它所声明的变量就绑定了这个块级作用域,不再受外部的影响
var tmp=123; if(true){ tmp='abc';//Uncaught ReferenceError: tmp is not defined,因为块级作用域内存在let命令声明的相同变量,违反了let命令先声明后使用原则 let tmp; }
4.let命令不允许在同一个作用域内,重复声明同一个变量
function foo(){ let a=10; let a=1;//Uncaught SyntaxError: Identifier 'a' has already been declared }
以上所述是小编给大家介绍的ES6中的let命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章: