内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

為什么說JavaScript預解釋是一種毫無節(jié)操的機制詳析-創(chuàng)新互聯(lián)

前言

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設計、網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務張北,十年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108

JavaScript是一門解釋型的語言 , 想要運行JavaScript代碼需要兩個階段

  • 編譯階段: 編譯階段就是我們常說的JavaScript預解釋(預處理)階段,在這個階段JavaScript解釋器將完成把JavaScript腳本代碼轉(zhuǎn)換到字節(jié)碼
  • 執(zhí)行階段: 在編譯階段JavaScript解釋器借助執(zhí)行環(huán)境把字節(jié)碼生成機械碼,并從上到下按順序執(zhí)行

本文就重點介紹預解釋,框架圖如下:


一、什么是預解釋


在js中,帶var 和function關(guān)鍵字的需要預解釋:

那什么是預解釋?就是在js代碼執(zhí)行之前,先申明好帶有var 關(guān)鍵字和帶有function關(guān)鍵字的變量,在內(nèi)存里先安排好。

預解釋:JavaScript代碼執(zhí)行之前,瀏覽器首先會默認的把所有帶var和function的進行提前的聲明或者定義

1.理解聲明和定義


聲明(declare):如var num;=>告訴瀏覽器在全局作用域中有一個num的變量了;如果一個變量只是聲明了但是沒有賦值,默認的值是undefined

定義(defined):如num=12;=>給我們的變量進行賦值。

2.對于帶var和function關(guān)鍵字的在預解釋的時候操作不一樣的


var =>在預解釋的時候只是提前的聲明

function =>在預解釋的時候提前的聲明+定義都完成了

3.預解釋只發(fā)生在當前的作用域下。


例如:開始只對window下的進行預解釋,只有函數(shù)執(zhí)行的時候才會對函數(shù)中的進行預解釋

二、作用域鏈


1.如何區(qū)分私有變量和全局變量?


1)在全局作用域下聲明(預解釋的時候)的變量是全局變量

2)只有函數(shù)執(zhí)行會產(chǎn)生私有的作用域,比如for(){}、if(){}和switch(){}都不會產(chǎn)生私有作用域

3)在"私有作用域中聲明的變量(var 聲明)"和"函數(shù)的形參"都是私有的變量。在私有作用域中,代碼執(zhí)行的時保遇到了一個變量,首先我們需要確定它是否為私有的變量,如果是私有的變量,那么和外面的沒有在何的關(guān)系;如果不是私有的,則往當前作用域的上級作用域進行查找,如果上級作用域也沒有則繼續(xù)查找,一直找到window為止,這就是作用域鏈。

我們舉個例子來區(qū)別私有變量和全局變量:

//=>變量提升:var a;var b;var c;test=AAAFFF111;
var a=10,b=11,c=12;
function test(a){
//=>私有作用域:a=10 var b;
a=1;//=>私有變量a=1
var b=2;//=>私有變量b=2
c=3;//=>全局變量c=3
}
test(10);
console.log(a);//10
console.log(b);//11
console.log(c);//3

當前文章:為什么說JavaScript預解釋是一種毫無節(jié)操的機制詳析-創(chuàng)新互聯(lián)
本文URL:http://www.rwnh.cn/article24/pdjce.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、App開發(fā)、網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
米泉市| 洪洞县| 武夷山市| 全州县| 城口县| 广汉市| 宜城市| 洛浦县| 连州市| 惠来县| 扎赉特旗| 苏州市| 福海县| 中阳县| 定日县| 扎赉特旗| 临澧县| 潮安县| 太康县| 巴东县| 莒南县| 盐源县| 永吉县| 当阳市| 洪洞县| 万源市| 舟山市| 汾西县| 隆化县| 高邮市| 进贤县| 客服| 梁河县| 八宿县| 洮南市| 蚌埠市| 望城县| 普宁市| 定南县| 上思县| 县级市|