Introduction à ES6 (1)
Commande scope-let au niveau bloc, commande const
-Les variables déclarées avec la commande let ne seront pas promues
(function(){
if(true){
let a = 5;
}
console.log(a); //报错
})
-Les variables déclarées avec la commande const doivent être affectées au moment de la déclaration
const a; //报错
-Si une variable déclarée avec la commande const est affectée à un objet, l'adresse vers laquelle elle pointe ne peut pas être modifiée et les propriétés de l'objet ne peuvent pas être contrôlées.
const a = {};
a.name = 'Tom';//正确
a = {name: 'Tom'};//报错
Si vous avez besoin de figer l'objet, vous devez utiliser la méthode Object.freeze
var obj = Object.freeze({});
obj.age = 18;//常规模式下无效,严格模式下报错
Pour figer l'objet lui-même et les propriétés de l'objet, vous pouvez utiliser la méthode suivante
var constantize = (obj) => {
Object.freeze(obj);
Object.keys(obj).forEach( (key, i) => {
if ( typeof obj[key] === 'object' ) {
constantize( obj[key] );
}
});
};
-ES6 Six méthodes de déclaration des variables: commande var, commande fonction, commande let, commande const, commande import, commande classe
-Méthode pour obtenir l'objet de premier niveau de la page
// 方法一
(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');
};