JavaScript中函數(shù)進階是怎樣現(xiàn)進行的,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)主要從事做網(wǎng)站、成都網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務鐵力,10余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220
· 全局作用域是最大的作用域
· 在全局作用域中定義的變量可以在任何地方使用
· 頁面打開的時候,瀏覽器會自動給我們生成一個全局作用域 window
· 這個作用域會一直存在,直到頁面關閉就銷毀了
// 下面兩個變量都是存在在全局作用域下面的,都是可以在任意地方使用的var num = 100var num2 = 200
· 局部作用域就是在全局作用域下面有開辟出來的一個相對小一些的作用域
· 在局部作用域中定義的變量只能在這個局部作用域內部使用
· 在 JS 中只有函數(shù)能生成一個局部作用域,別的都不行
· 每一個函數(shù),都是一個局部作用域
// 這個 num 是一個全局作用域下的變量 在任何地方都可以使用var num = 100
function fn() {
// 下面這個變量就是一個 fn 局部作用域內部的變量 // 只能在 fn 函數(shù)內部使用 var num2 = 200}
fn()
· 有了作用域以后,變量就有了使用范圍,也就有了使用規(guī)則
· 變量使用規(guī)則分為兩種,訪問規(guī)則 和 賦值規(guī)則
· 當我想獲取一個變量的值的時候,我們管這個行為叫做 訪問
· 獲取變量的規(guī)則:
· 首先,在自己的作用域內部查找,如果有,就直接拿來使用
· 如果沒有,就去上一級作用域查找,如果有,就拿來使用
· 如果沒有,就繼續(xù)去上一級作用域查找,依次類推
· 如果一直到全局作用域都沒有這個變量,那么就會直接報錯(該變量 is not defined)
var num = 100
function fn() {
var num2 = 200
function fun() {
var num3 = 300
console.log(num3) // 自己作用域內有,拿過來用 console.log(num2) // 自己作用域內沒有,就去上一級,就是 fn 的作用域里面找,發(fā)現(xiàn)有,拿過來用 console.log(num) // 自己這沒有,去上一級 fn 那里也沒有,再上一級到全局作用域,發(fā)現(xiàn)有,直接用 console.log(a) // 自己沒有,一級一級找上去到全局都沒有,就會報錯 }
fun()}
fn()
· 變量的訪問規(guī)則 也叫做 作用域的查找機制
· 作用域的查找機制只能是向上找,不能向下找
function fn() {
var num = 100}fn()
console.log(num) // 發(fā)現(xiàn)自己作用域沒有,自己就是全局作用域,沒有再上一級了,直接報錯
· 當你想給一個變量賦值的時候,那么就先要找到這個變量,在給他賦值
· 變量賦值規(guī)則:
· 先在自己作用域內部查找,有就直接賦值
· 沒有就去上一級作用域內部查找,有就直接賦值
· 在沒有再去上一級作用域查找,有就直接賦值
· 如果一直找到全局作用域都沒有,那么就把這個變量定義為全局變量,在給他賦值
function fn() {
num = 100}fn()
// fn 調用以后,要給 num 賦值// 查看自己的作用域內部沒有 num 變量// 就會向上一級查找// 上一級就是全局作用域,發(fā)現(xiàn)依舊沒有// 那么就會把 num 定義為全局的變量,并為其賦值// 所以 fn() 以后,全局就有了一個變量叫做 num 并且值是 100console.log(num) // 100
看完上述內容,你們掌握JavaScript中函數(shù)進階是怎樣現(xiàn)進行的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
分享文章:JavaScript中函數(shù)進階是怎樣現(xiàn)進行的
標題鏈接:http://jinyejixie.com/article14/gdjpde.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、網(wǎng)站制作、外貿網(wǎng)站建設、網(wǎng)站設計、全網(wǎng)營銷推廣、App設計
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)