聲明變量的方式
es6中新增兩種變量方式let和const,與var最大的區(qū)別是有了塊級作用與的概念,而且es6里會強制開啟嚴格模式(use strict),變量未聲明,不能引用。
- let
使用let注意以下幾點
1、let不可以重復聲明變量
2、let不允許提前聲明
3、let存在塊級作用域
function fn1(){
for(let i = 0;i<5;i++){
console.log(i); //打印0,1,2,3,4
}
console.log(i);// Uncaught ReferenceError: i is not defined 會報錯,
因為let 聲明的變量只在自己的塊級作用域里有效
}
fn1();
- const
使用const注意幾點:
1、const聲明值類型(string,number,undefined,boolean)不可以修改;
2、const聲明引用類型(object,function,null)可以修改;
3、const聲明時必須賦值;
function fn2(){
//值類型
const pi = 123;
console.log(pi); //報錯,Assignment to constant variable.
//引用類型
const k = {
a:1
}
console.log(const.b = 2) //可以改變引用類型
}
fn2();
解構(gòu)賦值:是一個Javascript表達式,這使得可以將值從數(shù)組或?qū)傩詮膶ο筇崛〉讲煌淖兞恐?。?/h2>
- 數(shù)組解構(gòu)賦值
let [a,b] = [1,2];
console.log(a,b) //1,2
- 字符串解構(gòu)賦值
let {length : len} = 'hello';
len // 5
- 布爾解構(gòu)賦值
var o = {p: 42, q: true};
var {p, q} = o;
console.log(p); // 42
console.log(q); // true
- 數(shù)值解構(gòu)賦值
var {wtf} = NaN;
console.log(wtf);
// undefined
- 對象解構(gòu)賦值
({a, b} = {a:1, b:2});
console.log(a); // 1
console.log(b); // 2
- 函數(shù)參數(shù)解構(gòu)賦值
function move({x, y} = { x: 0, y: 0 }) {
return [x, y];
}
console.log(move({x: 3, y: 8})); // [3, 8]
console.log(move({x: 3})); // [3, undefined]
console.log(move({})); // [undefined, undefined]
console.log(move()); // [0, 0]
字符串模板
//es5寫法
var name = 'gongjialin';
var age = 20;
var reslut = "我的名字是"+name+"年齡是"+age;
console.log(reslut); //我的名字是gongjialin,年齡是20
es6寫法
var name = 'gongjialin';
var reslut1 = `我的名字是${name}` ; //此時的${name}就是變量
console.log(reslut1); //我的名字是gongjialin
反引號中的字符串可以隨意換行
反引號中可以隨意插入變量的值和表達式
箭頭函數(shù)
let [a,b] = [1,2];
console.log(a,b) //1,2
let {length : len} = 'hello';
len // 5
var o = {p: 42, q: true};
var {p, q} = o;
console.log(p); // 42
console.log(q); // true
var {wtf} = NaN;
console.log(wtf);
// undefined
({a, b} = {a:1, b:2});
console.log(a); // 1
console.log(b); // 2
function move({x, y} = { x: 0, y: 0 }) {
return [x, y];
}
console.log(move({x: 3, y: 8})); // [3, 8]
console.log(move({x: 3})); // [3, undefined]
console.log(move({})); // [undefined, undefined]
console.log(move()); // [0, 0]
//es5寫法
var name = 'gongjialin';
var age = 20;
var reslut = "我的名字是"+name+"年齡是"+age;
console.log(reslut); //我的名字是gongjialin,年齡是20
es6寫法
var name = 'gongjialin';
var reslut1 = `我的名字是${name}` ; //此時的${name}就是變量
console.log(reslut1); //我的名字是gongjialin
反引號中的字符串可以隨意換行
反引號中可以隨意插入變量的值和表達式
1、箭頭函數(shù)可以簡寫到一個函數(shù)參數(shù)和一條語句
2、箭頭函數(shù)的this被調(diào)用者的上一層對象
3、箭頭函數(shù)沒有arguments,可以用...rest參數(shù)替代
...
1、在函數(shù)中叫做rest參數(shù),剩余的參數(shù),全部放在最后,如果函數(shù)存在rest參數(shù),必須放在最后面
2、在數(shù)組中叫做可擴展運算符,將數(shù)組展開