--- tags: ES6, Javascript disqus: hackmd --- # [JS]var、let、const 函式作用域(function scope),意思就是他的影響力在function裡,出了function就找不到了。 塊級作用域(block scope),意思就是他的影響力在{}裡,出{}就找不到了。 `var`是函式作用域(function scope) `let`、`const`是塊級作用域(block scope) ```javascript= function f1() { let n = 5; if (true) { let n = 10; } console.log(n); } f1() //5 如果把let改成用var function f1() { var n = 5; if (true) { var n = 10; } console.log(n); } f1() //10 ``` 由於`var`是函式作用域,所以第二個範例在if內的`n = 10`,導致在後的console.log(n)拿到的是被影響的n 而如果是塊級作用域的`let`,則因為影響力不超出`{}`,導致在if內的`n = 10`,無法影響到外免的console.log(n) #### const特別的地方 const在宣告之初就必須給值,否則會報錯。 如果是指址,那麼是可以對址裡面做更動的。 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up