標籤:1.0 mod module 添加 function alert undefined div foreach
1.let聲明變數,va聲明變數,而const聲明的常量
2.let與var的區別
let可以讓變數長期駐紮在記憶體當作
let的範圍是分塊的,塊內的變數不會覆蓋塊外的變數值。
{
//(模)塊1
let a = 1;
if(true){
//(模)塊2
let a = 2;
}
console.log(a); //1,因為塊內的變數不會覆蓋塊外的變數值
}
let與var:同一個代碼塊裡面不能出現變數重複聲明
3.const聲明常量,常量的值一旦聲明就整體就不能被改變,如果一個空數組或者json的話還是可以網他們裡面新增成員,但可以通過【徹底凍結函數】來禁止添加成語。
const的範圍也是分塊的,const與let共同點:同一個代碼塊裡面不能出現變數重複聲明
const PI = 3.1415926; //聲明常量
const對象聲明後可以進行屬性附值操作,但是不能重新對整個對象賦值操作【例如const json = {},json={name:‘hao123‘}】。
4.const對象凍結
//凍結1const person = Object.freeze();//凍結person.name = "zhangsan";person.age = 30;console.log(person.age);//30//凍結2const person = Object.freeze({});//凍結person.name = "zhangsan";person.age = 30;console.log(person.age); //undefined//凍結3const person = Ojbect.freeze({//凍結 name:"張三", age:30;});console.log(person.age);//30
5.forEach用法
/** * forEach的用法,遍曆一個對象 * forEach(testfun[,thisobj]); */var arr = [1,2,3,4];//寫法1arr.forEach(t1,arr);function t1(arg) { alert(arg);}//寫法2arr.forEach(function (e) { alert(e);});
6.徹底凍結對象的函數
/** * 利用forEach來實現ES6徹底凍結對象的函數 * @param {[type]} obj [description] * @return {[type]} [description] *//*ES6寫法*/var constantize = (obj) => { Object.freeze(obj); Object.keys(obj).forEach( (key,value) => { if( typeof obj[key] === ‘object‘ ) { constantize( obj[key] ); } });};/*ES5寫法*/var contantize = function (obj) { Object.freeze(obj); Object.keys(obj).forEach(function (key,value) { if( typeof obj[key] === ‘object‘ ) { constantize ( obj[key] ); } });}
7.跨模組常量的使用
//module.js檔案的代碼export const myjson = { varInt: 100, varFloat: 11.02, varString: ‘abc‘}//use.jsimport * as myjson form ‘./module‘; //匯入module.js內介面對象myjson的去不成語console.log(myjson.varInt); //100console.log(myjson.varFloat); //11.02console.log(myjson.varString); //‘abc‘//otherUse.jsimport {myjson.varInt,myjson.varFloat} as myjson form ‘./module‘;console.log(myjson.varInt);console.log(myjson.varFloat);//onlyInt.jsimport myjson.varInt as myjson form ‘./module‘;console.log( myjson.varInt );
8.全域對象屬性
全域對象屬性,在瀏覽器環境指的是window對象,而Node.js指的是global對象。在javascript語言中,所有的全域對象,所有的全域變數都是全域對象屬性。如果var與function命令聲明的變數是全域變數那麼就屬於全域對象屬性。var myName = ‘jewave‘;console.log(window.myName);//瀏覽器環境下的全域變數console.log(global.myName);//Node環境下的全域變數console.log(this.myName);//通用環境下的全域變數let herName = "hong";console.log(window.herName); //undefined
ES6第一部分