欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

js中解析順序、作用域、嚴格模式的示例分析

小編給大家分享一下js中解析順序、作用域、嚴格模式的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司于2013年開始,先為白城等服務(wù)建站,白城等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為白城企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

一、javascript的解析順序

我們大家所理解的代碼的執(zhí)行順序都是從上到下的,但是實際上確不是這樣的。我們看一下下面的代碼。

alert(a);
var a = 1;

如果執(zhí)行順序是從上到下的,在上面彈出一個a,瀏覽器會認為從上到下執(zhí)行的,那么當(dāng)它alert(a)的時候,他就會發(fā)現(xiàn)沒有這個東西,那么他就會報錯,但是實際上他彈出來的結(jié)果是undefined。返回值是undefined說明a沒有被定義也就是沒有賦值。下面我來講解一下javascript的解析順序。

1.ES5中有聲明意義的關(guān)鍵字

var 會存在變量提升

function也有聲明變量的的作用。

2.解析順序

1.找聲明 var、function 聲明:只是聲明變量,而不包括賦值。

2. 執(zhí)行

注意:以上兩步 都遵循從上至下,執(zhí)行的時候遇到等號,先看等號的右邊。

注意:當(dāng)function聲明的變量和var聲明的變量重名時,function的變量權(quán)重會比var聲明的要高。

下面多來幾個例子解析一下就清楚許多了,但是看例子之前要知道一下什么叫作用域。

二、作用域

作用域就是:起作用的范圍分為下面兩種

1.全局作用域

2.函數(shù)作用域

他們兩個的區(qū)別看下面的例子仔細分析。

三、看幾個例子解析一下執(zhí)行順序的步驟

1. 第一個例子:

var x = 5;
 a();
 function a(){
  alert(x);
  var x = 10;
 }
alert(x);

解析過程

1,.尋找聲明 (看全局作用域)

var x;

function a(){}

2.執(zhí)行

x = 5;

a() ------------->執(zhí)行到這個函數(shù)的過程中在重新進行以上兩步

1,尋找聲明 var x;(函數(shù)作用域)

2. 執(zhí)行

alert(x); 這個x在函數(shù)作用域中存在,并且還沒有執(zhí)行到賦值的那一步,那么彈出的東西就是undefined;

x = 10;

alert(x) 這里彈窗是全局變量 5;

所以瀏覽器彈窗的內(nèi)容是 undefined 5

2. 第二個例子

 a()
 function a(){
  alert(x);
  var x = 10;
 }
alert(x);

解析過程 按照上面的例子一樣分析

1. 尋找聲明

function a(){}

2.執(zhí)行

a()------------------------->函數(shù)

1.尋找聲明

var x;

2.執(zhí)行

alert(x) 彈出未定義

x = 10;

alert(x); 這里的x會從全局中尋找x,但是發(fā)現(xiàn)并沒有x,所 以瀏覽器會 報錯 x is not defined x沒有被定義

所以瀏覽器的彈出的內(nèi)容是 undefined 報錯

我相信看了這兩個例子的人都對這個解析過程都有了清除的了解,如果還是不太了解,建議重新看一次。

下面介紹幾個需要注意的地方, 直接上例子

3. 第三個例子

前面講到了當(dāng)function聲明的變量和var聲明的變量重名時,function的變量權(quán)重會比var聲明的要高。來一個例子證明一下

alert(a)

function a() {
 alert("函數(shù)")
}

var a = 1; 
alert(a)

解析過程

1.尋找聲明

function a(){}

var a;

2. 執(zhí)行

alert(a) 前面說到了function的聲明比var聲明的權(quán)重高,所有執(zhí)行這個的時候他會彈出這個 函數(shù)塊(函數(shù)體)

a = 1;

alert(a); 這里彈出的就是 1 了

所以最后的結(jié)果就是 函數(shù)塊 1;

4.第四個例子

子作用域可以向父級作用域找變量,直到全局作用域為止,反之不行。 如果子作用域有同樣的變量,那么他就會使用自己的,不會去找爸爸要。

var a = 5;

function fn() {
 alert(a)
}

fn()

解析過程

1.尋找聲明

var a;

function fn(){}

2.執(zhí)行

a = 5;

fn()--------------------------------------> 函數(shù)

1.找聲明

2.執(zhí)行

alert(a); 他這里沒有a 所以去找爸爸要。 a = 5; 所以彈窗是 5

所以最后結(jié)果為 彈窗5

下面看一下爸爸會不會去找兒子要東西

function fn(){
  var b = 5; 
  return b;  
}
fn();
alert(b);

1.尋找聲明

function fn(){}

2. 執(zhí)行

fn()----------------------------------------> 函數(shù)

1.尋找聲明

1.var b;

2.執(zhí)行

return b;

alert(b); //我們看一下返回值是多少 b is not defined 他說b沒有被定義,說明父作用域不可以向自作用域去尋找變量。

5. 第五個例子

當(dāng)一個變量無中生有時,不管從哪個作用域出來的,統(tǒng)統(tǒng)歸到window下,下面看兩個例子

fn();
 alert(a);
 var a = 0;
 alert(a);
 function fn(){
  var a = 1;
 }

這一個例子應(yīng)該可以自己分析了 最后的結(jié)果是 undefined 0

我們再來看一下下面這個你會很吃驚

 fn()
 alert(a)
 var a = 0;
 alert(a);
 function fn(){
   a = 1;
 }

明明都一樣,我吃驚什么 返回值不是還是 undefined 和 0 嗎

但是你有沒有發(fā)現(xiàn)倒數(shù)第二行 上面的聲明了 下面的沒有聲明,來解析一波

1.尋找變量

var a;

function fn(){}

2.fn()---------------------------->函數(shù)

a = 1; 這個時候就說到了那一點,無中生有的變量,統(tǒng)統(tǒng)歸到window下面

所以下面的執(zhí)行過程

alert(a) 這里的彈窗就是 1 了

a = 0;

alert(a) 彈出 0

所以最后的結(jié)果是 1 0

四、嚴格模式

嚴格模式下的代碼執(zhí)行時,非常嚴格

變量不允許無中生有

意義:規(guī)范代碼開發(fā)的流暢,邏輯

"use strict"
a = 1;
alert(a);

當(dāng)我們寫后面兩句代碼的時候不會報錯和出現(xiàn)問題,但是當(dāng)我們加上第一句代碼的時候,我們在這樣寫的時候就會報錯了。所以我們還是按照規(guī)范的標(biāo)準(zhǔn)來,提高自己的能力

五、可能好多人做了上面的例子感覺不太過癮,下面我再給出幾個例子,可以自己去分析分析,我會在最后面給出答案。

1. 第一個例子  // 10 報錯

var a = 10;
alert(a);
a()
function a(){
 alert(20);
}

2.第二個例子 undefined 1 0

var a = 0;
 function fn(){
  alert(a);
  var a = 1;
  alert(a);
 }
 fn();
 alert(a);

3.第三個例子 當(dāng)同樣的聲明同樣的名字重復(fù)時,后面寫的會覆蓋前面寫的 //2 1 1 3

a()
 var a = function(){
  alert(1)
 }
 a();
 function a(){
  alert(2);
 }
 a();
 var a = function(){
  alert(3);
 }
 a()

以上是“js中解析順序、作用域、嚴格模式的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁標(biāo)題:js中解析順序、作用域、嚴格模式的示例分析
轉(zhuǎn)載來源:http://aaarwkj.com/article30/ihppso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機網(wǎng)站營銷、微信小程序網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、網(wǎng)站策劃

廣告

聲明:本網(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)站
亚洲综合av婷婷激情| 人妻上司无奈中文字幕| 精品人妻中文av一区二区| 亚洲中文字幕婷婷在线| 99精品人妻一区二区三区蜜桃| 久久蜜臀av一区三区| 日本一区二区高清网址| 杨幂一区二区在线观看| 国产精品欧美久久久久无| 在线观看国产自拍精品| 国产三级在线观看91| 91精品国产老熟女在线| 国产在线乱码一区二区| 18禁黄网站禁片免费视频| 91亚洲精品久久久蜜桃网站| 欧美精品一区二区三区色| 成人在线午夜免费视频| 一区二区三区在线观看美女视频 | 日本免费一区中文字幕| 精品人妻在线中文字幕| 日韩欧美高清一区二区| 亚洲av成人永久网站一区| 午夜夫妻生活视频在线观看| 未满十八禁止免费在线观看| 人妻一区二区三区中文字幕| 一区二区先锋深夜中文字幕| 国产成人精品久久一区二区| 日日夜夜天天操天天干| 久久精品亚洲天然东京热 | 免费一区二区三区精品| 国产成人综合亚洲一区| 91九色最新国产在线| 亚洲成人免费在线一区| 又黄又湿又刺激中文字幕| 亚洲国产精品一区二区三| 国产免费看黄色的网站| 美女爽到高潮久久久| 成人性生交大片免费看中文| 日韩精品欧美成人高清一区二区| 日韩一区二区免费看视频| 中文字幕一区二区精品人妻|