ES6 -> ECMA 標準webpack
ES6 -> 2015年6月 ES6.0web
每一年6月份,發佈一個版本ajax
ES6環境:chrome
webpack3.x Traceur
1.沒有預解析
,不存在變量提高
json
在代碼塊內,只要let定義變量,在以前使用,都是報錯 先定義完,再使用
<script> let a = 12; function fn(){ alert(a); //TDZ開始 暫時性死區 alert(b) let a = 5; //TDZ 結束 let b = 12; } fn(); </script>
2.同一個做用域裏, 不能重複定義變量
,能夠賦值segmentfault
3.for循環,for循環裏面是父級做用域
,裏面又一個數組
for(let i = 0; i<3; i++){ let i = 'abc'; console.log(i); }
{ //塊級做用域 } {{{{let a = 12}}}} if(){xx} for(){} while(){}
const定義變量不能修改const定義完變量,必須有值,不能後賦值,不能修改,
通常定義配置文件
。
可是對象是能夠修改的,由於它是引用
瀏覽器
凍結:Object.freeze
(對象),就能夠不被修改。app
const config={ host: username: password: version: } { //TODO } IIFE,當即執行匿名函數 (function(){ //TODO })()
建議:
函數
之後 就用 let 不要在使用var const http = require('http');
重要,經常使用
)* 很是有用,特別在作數據交互 ajax
let [a,b,c] =[12,5, 6]; 注意: 左右兩邊,結構格式要保持一致 json: let {name,age, job} = { name:'Strive', age:18, job:'碼畜' };
別名:
let {name:n,age:g, job:a} = json;
let [a,b, c="默認值"] = ['aaa','bbb'];
注意:null和undefined,null是一個對象,
有值
let a = 12; let b = 5; import {a,b,c} from './mod'
經常使用
)優勢: 能夠隨意換行 `${變量名字}`
字符串鏈接(之前用:+
),要死人的。
如今:${變量名字}
let name ='Strive'; let age = 18; let str = `這我的叫${name}, 年齡是 ${age}歲`;
字符串查找:
str.indexOf(要找的東西) 返回索引(位置) ,沒找到返回-1 str.includes(要找的東西) 返回值 true/false
判斷瀏覽器: includes
<script> if(navigator.userAgent.includes('Chrome')){ alert('是chrome') }else{ alert('!是chrome') } </script>
字符串是否以誰開頭:
str.startsWith(檢測東西) 檢測地址
字符串是否以誰結尾:
str.endsWith(檢測東西) .png
重複字符串:
str.repeat(次數);
填充字符串:
str.padStart(整個字符串長度, 填充東西) 往前填充 str.padEnd(整個字符串長度, 填充東西) 日後填充 str.padStart(str.length+padStr.length, padStr)
重要
)1. 函數默認參數 function show({x=0,y=0}={}){ console.log(x,y); } show() 2. 函數參數默認已經定義了,不能再使用let,const聲明 function show(a=18){ let a = 101; //錯誤 console.log(a); } show()
擴展運算符:...
展開數組:
<script> let arr = ['apple','banana','orange']; console.log(arr); console.log(...arr); </script>
... : [1,2,3,4] -> ... [1,2,3,4] -> 1,2,3,4,5 ...: 1,2,3,4,5 -> ...1,2,3,4,5 -> [1,2,3,4,5]
剩餘參數: 必須放到最後
function show(a,b,...c){ console.log(a,b); console.log(c); } show(1,2,3,4,5)
重要,經常使用
)=>
let show = () => 1;
格式:
() => return東西 或者 () =>{ 語句 return }
例子:
var f = v => v; //等同於 var f = function(v){ return v; } var sum = (num1,num2) => num1 + num2; //等同於 var sum = function(num1,num2){ return num1 + num2; } [1,2,3].map(function (x) { return x * x; }); //箭頭函數寫法 [1,2,3].map(x => x *x); //簡潔了許多
從例子咱們能夠看出,省略了function,花括號{}
用=>
代替了。這種寫法更簡潔了。
注意:
this
問題,
,不在是運行時所在的對象arguments
, 用 ‘...
’