js中三種定義變量的方式const, var, let的區別。
1.const定義的變量不可以修改,而且必須初始化。
1 const b = 2;//正確 2 // const b;//錯誤,必須初始化 3 console.log('函數外const定義b:' + b);//有輸出值 4 // b = 5; 5 // console.log('函數外修改const定義b:' + b);//無法輸出
2.var定義的變量可以修改,如果不初始化會輸出undefined,不會報錯。
1 var a = 1; 2 // var a;//不會報錯 3 console.log('函數外var定義a:' + a);//可以輸出a=1 4 function change(){ 5 a = 4; 6 console.log('函數內var定義a:' + a);//可以輸出a=4 7 } 8 change(); 9 console.log('函數調用后var定義a為函數內部修改值:' + a);//可以輸出a=4
3.let是塊級作用域,函數內部使用let定義后,對函數外部無影響。
1 let c = 3; 2 console.log('函數外let定義c:' + c);//輸出c=3 3 function change(){ 4 let c = 6; 5 console.log('函數內let定義c:' + c);//輸出c=6 6 } 7 change(); 8 console.log('函數調用后let定義c不受函數內部定義影響:' + c);//輸出c=3
鏈接: http://www.cnblogs.com/ksl666/p/5944718.html
一.運行及關閉運行:
在上一節中我們用shift+右擊在C:\vue\es6文件夾中打開命令行使用:npm run dev,打開了我們的vue界面。
如果要關閉則在命令行中按住ctrl+C則可以關閉。
二.let和const使用方法:
(1).在javascript中我們通常使用var會發生變量提升,即腳本開始運行時,變量已經存在了,但是沒有值,所以會輸出undefined,
而let不會發生變量提升,這表示在聲明它之前,變量是不存在的,這時如果用到它,就會拋出一個錯誤。
(2).var 是函數級作用域,let是塊級作用域:
{
let a = 10;
var b = 1;
}
a // ReferenceError:a is not defined.
b // 1
容易發生錯誤:
var a = [];
for(var i = 0; i < 10; i++){
a[i] = function(){
console.log(i);
};
}
a[6](); // 10;
如果將var i 改為 let i 此時a[6](); 結果是6;
(3).let不允許在相同作用域內,重復聲明同一個變量:
function(){
let a = 10;
var a = 1;
}
//報錯
function(){
let a = 10;
let a = 1;
}
//報錯
(4).const
聲明一個只讀的常量。一旦聲明,常量的值就不能改變
const PI = 3.1415;
PI = 3;
//TypeError: Assignment to constant variable.
(5).const
命令聲明的常量也是不提升,只能在聲明的位置后面使用。
{
const a = 10;
}
console.log(a);
//報錯
(6).const
聲明的常量,也與let
一樣不可重復聲明
(7).對於復合類型的變量,變量名不指向數據,而是指向數據所在的地址。const
命令只是保證變量名指向的地址不變,並不保證該地址的數據不變,
所以將一個對象聲明為常量必須非常小心。
const t = {};
t.prop = 123;
console.log(t.prop); // 123
t = {}; // 報錯
三.推薦阮一峰老師網站:http://es6.ruanyifeng.com/
鏈接:http://www.cnblogs.com/zhihaospace/p/6242573.html