iT邦幫忙

2024 iThome 鐵人賽

DAY 8
1

Hello,大家好~歡迎又回到JavaScript初學者成長日記!
今天我們要說到作用域(Scope)。什麼是Scope呢?用白話文說就是,要去哪裡找東西。舉個生活中的例子,今天若我家是在公寓的二樓,那我朋友們絕不會到五樓找我,這時二樓就是我的Scope。Scope分為Block Scope 跟 Function Scope。猜猜以下兩段程式碼會印出什麼結果?
https://ithelp.ithome.com.tw/upload/images/20240922/20169421Z3qb2sX8uU.jpg
https://ithelp.ithome.com.tw/upload/images/20240922/20169421p5ocpvBmsO.jpg

答案是,在這例子中,用var宣告時,會印出1,而用let宣告時會出現錯誤,錯誤訊息是a is not define。
https://ithelp.ithome.com.tw/upload/images/20240922/20169421RtdLfcTntr.jpg
https://ithelp.ithome.com.tw/upload/images/20240922/20169421BoAPsxQlxH.jpg

由此可知,let的作用域是Block Scope,當變數包在Block中時,只有在Block可以找到它,在外面是找不到的,它是不存在在外面的。
在讓我們猜猜接下來這段程式碼會產生什麼結果?
https://ithelp.ithome.com.tw/upload/images/20240922/20169421BZZZRMwPdp.jpg

答案是!!!會產生錯誤,錯誤訊息是:a is not defined。
https://ithelp.ithome.com.tw/upload/images/20240922/20169421aRNdcVDC7e.jpg

由此可知,var的作用域是Function Scope,所以若變數是用var在函數中宣告,就只會在該函數中找到變數,出了函數就找不到囉!
那今天就先大致上介紹到這!在這一系列的常數與變數,就到一個段落,那就明天見囉~掰掰!


上一篇
變數提昇
下一篇
流程控制
系列文
JavaScript初學者成長日記13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言