ES6語法

ES6語法

ES6 -> ECMA 標準

js

ES7 ES8…..

ES5.x

ECMA-262 -> ES1.0

ES2015

ES6 -> 2015年6月 ES6.0

每年6月份,發佈一個版本

2016年6月    ES6.1    ES7     ES2016
2017年6月    ES6.2(async await)   ES8     ES2017

ESnext

ESnext ‘下一代 js’語言

任何人都可以向 標準委員會 (TC39), 要求更改語言標準

提案變成標準,經歷5個階段
Stage 0 展示階段
Stage 1 徵求意見階段
Stage 2 草案階段
Stage 3 候選階段
Stage 4 定案階段(標準)

babel

https://github.com/tc39/ecma262


react, vue, angularJs, angular

chrome, 對新的語法支持,速度還挺猛

ES6環境:
webpack3.x

Traceur

關於定義(聲明)變量:
之前: var a=12;
let a=12

作用域:
    全局
    函數作用域

let     相當於之前的 var
const       常量, 定義好了不能改變

let注意:
    1. 沒有預解析,不存在變量提升
        在代碼塊內,只要let定義變量,在之前使用,都是報錯
        先定義完,在使用
    2.  同一個作用域裏, 不能重複定義變量
    3.  for循環,for循環裏面是父級作用域,裏面又一個

塊級作用域:
    {
        //塊級作用域
    }

    {{{{let a = 12}}}}

    if(){xx}
    for(){}
    while(){}


const: 特性和let一樣
    const定義變量不能修改

    const定義完變量,必須有值,不能後賦值,不能修改

    Object.freeze(對象)

    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'];

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

    http://www.xxx.xx

    字符串是否以誰開頭:
        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()

擴展運算符、Rest運算符:

展開數組

... :
    [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]

剩餘參數: 必須放到最後

箭頭函數:
=>

let show = () => 1;


() => return東西

() =>{
    語句
    return
}

注意:
    1. this問題, 定義函數所在的對象,不在是運行時所在的對象
    2. 箭頭函數裏面沒有arguments, 用  ‘...’
    3. 箭頭函數不能當構造函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章