轉載鏈接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/es6-grammar-part-one/
一、let命令
基本用法:ES6新增了let命令,用來聲明變量。用法與var類似,但是let命令只在代碼塊內有效
example: { let a=10;
var b=1;
}
a // ReferenceError:a is not defined
b:// 1
1.1 let不存在變量的提升:let不會像var那樣發生'變量提升'的現象,變量一定要在聲明後使用,否則會報錯(我理解的就是var 值所以不會報錯,是因爲初始值就是undefined)
1.2 let不允許在相同的作用域內重複聲明同一個變量
二、const命令
const也是用來聲明變量,但是聲明的是常量。一旦聲明,常量值就不可以改變。用法跟其他語言(java,c,c++)一樣
三、跨模塊常量
const命令聲明的常量只在當前的代碼塊有效,如果我們想設置跨模塊常量,那就需要採用下面的寫法了
// first.js
export const a=1;
export const b=3;
export const c=4;
//second.js
import * as first from './first'
console.log(first.a); // 1
console.log(first.b); // 3
//third.js
import {a,b}from './first'
console.log(first.a); // 1
console.log(first.b); // 3
四、Module
4.1export命令:
模塊功能主要有兩個命令構成:export和import。export用於規定模塊的對外接口,import命令用於
輸入其他模塊提供的功能
一個模塊就是一個獨立的文件。文件內部的東西,外面是無法獲取的。如果你想你想讀取模塊的某個變量,就需要export出來改變量
example: //example.js
export var firstname='Jane';
export var lastname='zhou'
另一種export的寫法
var firstname='jane';
var lastname='zhou'
export {firstname.lastname}; 建議用第二種寫法,一目瞭然。
export命令除了輸出變量外,還可以輸出函數或者類(Class)
export function multiply (x,y){
return x*y;
}
注意:export 命令可以出現在模塊的任何的位置,只要處於模塊的頂層就可以。如果處於塊級作用
域,就會報錯(import)命令也是如此。因爲處於代碼塊之中就沒法做靜態優化了,這樣違背了ES6
設計的初衷。
4.2 import命令:
使用export命令定義對外的接口,其他js文件可以通過import命令來加載這個模塊。
//main.js
import {firstname,lastname} from example.js