一.let ,var,const
var沒有塊級作用域,定義後在當前閉包中都可以訪問,如果變數名重複,就會覆蓋前面定義的變數,並且也有可能被其他人更改。
for (var i = 0; i < 3; i++) , 0);}
結果會列印3次3,原因是var 沒有塊級作用域,而let有自己的塊級作用域,所以不會出現這種情況。
使用 let 定義的變數在大括號的外面是訪問不到的。使用let的好處是
實現塊級作用域
if(true)console.log(name);// referenceerror: name is not defined
不會汙染全域性物件
if(true)console.log(window.name);
結果 undefined
let 重複定義會報錯,不存在變數的預解釋
const可以去宣告乙個常量,常量一旦賦值就不能再修改了
這種情況是可以改的:
const names = ['zfpx1'];names.push('zfpx2');
console.log(names);
不同的塊級作用域可以多次定義
const a = "0";console.log(a)
二.解構
var [name,age] = ['zfpx',8]; console.log(name,age);//zfpx 8]
let [x, [y], z] = [1, [2.1, 2.2]];console.log(x, y, z);
let [x, [y,z]] = [1, [2.1, 2.2]];
console.log(x,y,z);
let [json,arr,num] = [,[1,2],3];
console.log(json,arr,num);//1 2.1 undefined 1 2.1 2.2 [ 1, 2 ] 3
3.省略負值
let [, , x] = [1, 2, 3];console.log(x);
4.解構物件
var obj = ;//物件裡的name屬性的值會交給name這個變數,age的值會交給age這個變數
var = obj;
//物件裡的name屬性的值會交給myname這個變數,age的值會交給myage這個變數
let = obj;
console.log(name,age,myname,myage); //zfpx 8 zfpx 8
四。字串
模板字串用反引號(數字1左邊的那個鍵)包含,其中的變數用${}
括起來
var name = 'zfpx',age = 8;let desc = `$ is $ old!`;
console.log(desc);
//所有模板字串的空格和換行,都是被保留的
var str = ``;
console.log(str);
常用ES6基礎語法總結
用自己易於理解的語言總結的,歡迎各位大佬指點 1 用來宣告塊級作用域 let宣告的變數只在其塊級作用域內有效,而var通常在函式作用域或全域性作用域內有效塊級作用域 指用花括號包裹起來形成的語句塊,如if for while迴圈語句等。if true console.log a a is not d...
ES6語法總結
1 物件的寫法 es5中物件 es6中物件 注意這種寫法的屬性名稱和值變數是同乙個名稱才可以簡寫,否則要想es5那樣的寫法,例如 2 在物件中的方法的寫法 es5中物件 substrict function es6中物件 substrict 3 物件的匯出寫法 es5兩種形式 1 module.ex...
ES6常用語法總結
es6語法中,變數的宣告方式改變了,而新的宣告方式也帶來了一些新的特性,其中最重要的就是塊級作用域和不再具有變數提公升 我們都是到,用var宣告的變數會變成乙個全域性變數,但是用let和const申宣告的變數就只能在當前作用域使用,例如 console.log a 20 cosnole.log a ...