麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > web前端技巧-關于JavaScript的作用域你應該了解的那點事

web前端技巧-關于JavaScript的作用域你應該了解的那點事

來源:千鋒教育
發(fā)布人:小千
時間: 2021-06-21 09:17:00 1624238220

      作用域是JavaScript中非常基礎的概念,很多剛入門的同學卻弄不懂作用域的概念,但不弄明白的話又不能夠寫出高效簡介的代碼,今天小千就來給大家介紹一下關于前端JavaScript作用域的那點事。

<a href=web前端培訓" />

      什么是作用域

      JavaScript 中的作用域是指變量的可訪問性或可見性,也就是說,程序的哪些部分可以訪問該變量,或者該變量在何處可見。

      為什么作用域很重要

      作用域的主要好處是安全性。也就是說,只能從程序的特定區(qū)域訪問變量,使用作用域,我們可以避免程序其他部分對變量的意外修改。

      作用域可減少命名沖突。也就是說,我們可以在不同的作用域內(nèi)使用相同的變量名。

      作用域類型

      JavaScript中有三種類型的作用域:全局作用域、局部作用域或函數(shù)作用域、塊級作用域。

      1. 全局作用域

      不在函數(shù)或塊(一對花括號)內(nèi)定義的任何變量都在全局作用域內(nèi),可以從程序的任何位置訪問全局作用域內(nèi)的變量。例如:

全局作用域

      2. 局部作用域或函數(shù)作用域

      利用 var 在函數(shù)體內(nèi)部聲明的變量都在局部作用域(或稱函數(shù)作用域)內(nèi),它們只能從該函數(shù)內(nèi)部訪問,不能在外部代碼中訪問。例如:

局部作用域web前端培訓

      3. 塊級作用域

      ECMAScript 2015 引入了 let 和 const 來定義變量,與 var 定義變量不同,它們的作用域是在最接近的花括號內(nèi),這意味著,不能從那對花括號之外訪問它們。例如:

      我們可以看到 var 定義的變量可以在塊外部使用,而 let 定義的變量不能在塊外部訪問。

塊級作用域web前端培訓

      4.嵌套作用域

      就像 JavaScript 中的函數(shù)一樣,一個作用域可以嵌套在另一個作用域內(nèi)。例如:

嵌套作用域web前端培訓

      這個代碼片段中有 3 個作用域彼此嵌套。首先,塊級作用域(由 let 定義的變量創(chuàng)建)嵌套在局部作用域或函數(shù)作用域內(nèi),而后者又嵌套在全局作用域內(nèi)。

      5.詞法作用域

      詞法作用域(也稱為靜態(tài)作用域),從字面上講是指作用域是在詞法分析(通常稱為編譯)時確定的,而不是在運行時確定的。以題主的問題作為示例:

詞法作用域

      在這里,不管是從哪兒調用 test() 函數(shù),console.log(a) 總是會打印 hello world,這與具有 動態(tài)作用域 的語言 console.log(a) 不同,后者會根據(jù)調用函數(shù)的位置而打印不同的值。

      如果上面的代碼是用支持動態(tài)作用域的語言編寫的,console.log(a) 則會打印出來 I belong to func。

      使用詞法作用域,我們可以僅通過查看源代碼來確定變量的作用域,而在動態(tài)作用域下,只有在執(zhí)行代碼后才能確定作用域。

      6.作用域鏈

      當在 JavaScript 中使用變量時,JavaScript 引擎將嘗試在當前作用域中查找變量的值,如果找不到變量,它將查找外部作用域并將繼續(xù)這樣做,直到找到變量或到達全局作用域為止。如果在全局作用域中仍然找不到該變量,它將在全局作用域內(nèi)隱式聲明該變量(非嚴格模式下)或返回錯誤。

作用域鏈web前端培訓

      調用 bar() 函數(shù)時,JavaScript 引擎將查找 bar 變量并在當前作用域中找到了它。接下來,在當前作用域中查找 foo 變量,但無法找到它,因此繼續(xù)在外部作用域中查找并找到了它(即全局作用域)。

      之后,我們?yōu)?num 變量賦值 99,JavaScript 引擎在當前作用域中查找 num 變量,找不到,然后在外部作用域(全局作用域)中查找變量,也找不到,由于腳本不在嚴格模式下,因此創(chuàng)建一個名為 num 的新全局變量,并為其分配變量值 99。

      以上就是關于JavaScript作用域的介紹和案例了,如果你對web前端開發(fā)感興趣的話,不妨來千鋒web前端培訓班了解一下我們的web前端培訓課程,現(xiàn)在咨詢更有全套免費學習資料可以領取,趕緊賴了解一下吧。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
10年以上業(yè)內(nèi)強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 一个人看的www免费高清中文字幕| 日本三级s电影| 泰国午夜理伦三级| 亚洲人成人77777网站| 91caoprom| 免费a级黄色片| 国产小鲜肉男同志gay| 春日野吉衣| 四只虎免费永久观看| 特区爱奴在线观看| 你懂的在线看| va亚洲va日韩不卡在线观看| 国产a级毛片| 免费看男阳茎进女阳道动态图| 亚洲精品高清国产一久久| 美女的大胸又黄又www又爽| 国产一精品一av一免费爽爽| 粗大的内捧猛烈进出小视频| 欧美香蕉在线| 夜来香高清在线观看| 可以直接看的毛片| 欧美亚洲国产日韩综合在线播放 | 在线观看亚洲专区| 国产精品久久久久久久| 国内精品伊人久久久久妇| 天天5g影院永久免费地址| 中日韩中文字幕| 天天做天天爱天天爽综合网| 大香线一本| 男人桶女人视频不要下载| 精品自拍一区| 亚洲码欧美码一区二区三区| 夜来香高清在线观看| 一个人看的www高清频道免费 | 村上凉子丰满禁断五十路 | 日产亚洲一区二区三区| 精品国产柚木在线观看| 欧美猛交| 波多野结衣不卡| 亚洲欧美日韩精品专区| 公车校花小柔h|