它是variable的簡寫,可以理解成變數的意思。在es6之前,js宣告變數都是採用的var。例項1:
var str = "hello world!";
console.log(str);//hello world!
例項2:
var a=
2;if(true)
console.
log(a);//3
例項3:
for(var i=0;i<10;i++)
console.log('迴圈體外:'+i);//迴圈體外:10
從例項3中可以看出,var在es6裡是用來宣告全域性變數。
它是『讓』,var在es6裡是用來宣告區域性變數。例項1:
var a=
2;if(true)
console.
log(a);//2
例項2:
if(true)
console.log(a);
//報錯:uncaught referenceerror:
a is not defined
例項3:
for(let i=0;i<10;i++)
console.log('迴圈體外:'+i);
//報錯:uncaught referenceerror: i is not defined
通過兩個例項3的對比,我們可以很清楚的明白,var宣告的是全域性變數,而let宣告的是區域性變數!作用:
通過上邊的例項,我們可以看出,乙個let變數我們在不同的作用域宣告的時候,不會被影響。而var則會出現衝突。例項1:
for(let i=0;i<10;i++)
}
例項2:
for(var i=0;i<10;i++)
}
從上例項2就可以看出,var的宣告會影響其他的相同變數,而let宣告只會在各自的作用域宣告,不會影響其他作用域的同名變數,這就導致以後我們在不同的作用域不用為宣告變數而苦惱!let相當於解放更多的變數供我們使用!
它是常量的意思,就是宣告開始,就對該常量賦值,後邊的邏輯操作時只能使用,不能改變的值。例項1:
const a;
a=3;
console.log(a);
//報錯:uncaught syntaxerror: missing initializer in
const declaration
例項2:
const a=2
;var a=3
;console.log(a);
//報錯:uncaught syntaxerror: identifier 'a' has already been declared
例項3:
const a=2;
console.log(a);//2
作用:
當我們需要進行最大安全整數比較的時候,我們就需要用乙個常量將最大安全整數(number.max_safe_integer)宣告乙個常量,後期在使用的時候不會害怕該值被改變。還有圓周率這些常量在用時的儲存。總結:
通過上邊的例項,可以很清晰的明白:我的部落格,歡迎交流!1.var宣告的是全域性變數,當需要乙個變數在全域性多個地方使用的時候,就採用var,例如(輪播的index等);
2.let宣告的是區域性變數,當需要乙個變數只是在某乙個作用域使用,就採用let,例如(for迴圈的index等);
3.const 宣告的是常量,宣告就進行賦值,以後不可改變,只能進行使用!例如(圓周率等)
我的csdn部落格,歡迎交流!
前端筆記專欄
前端筆記列表
遊戲列表
posted @
2017-11-28 17:42
newman·li 閱讀(
...)
編輯收藏
Es6之變數宣告
es6變數宣告let 和 canst,let 所宣告的變數具有塊級作用域,且宣告的變數不會前置,而const宣告的是不變了常量 let test test let 所宣告的變數只在塊級作用域內有效,而var就不同 for var i 1 i 5 i console.log str 輸出hello.c...
ES6 變數宣告方式
var,function,let,const,import,class1.let只在所在的 塊中有效 2.以前我們需要用iife解決的問題 3.不存在變數宣告提公升 4.暫時性死區tdz 1.let只在所在的 塊中有效 2.以前我們需要用iife解決的問題 3.不存在變數宣告提公升 console....
ES6的變數宣告方式
保留了var和function。新增加了let const class和import。而且,let const class宣告的全域性變數再也不會和全域性物件的屬性掛鉤了。let 1 let只在所在的 塊中有效 for var i 0 i 10 i console.log i 10 for let ...