欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS聲明式函數(shù)與賦值式函數(shù)實例分析

 更新時間:2016年12月13日 11:56:03   作者:鄭浩-  
這篇文章主要介紹了JS聲明式函數(shù)與賦值式函數(shù),結(jié)合實例形式分析了JS函數(shù)解析的流程與執(zhí)行順序,需要的朋友可以參考下

本文實例講述了JS聲明式函數(shù)與賦值式函數(shù)。分享給大家供大家參考,具體如下:

引言

“程序是不會騙人的”我們項目中的一個哥們經(jīng)常這樣說,為什么他會有這樣的感嘆呢?就是有時候我么程序員會出現(xiàn)的這樣的問題,當(dāng)我們讓別人來調(diào)試錯誤的時候,別人什么都沒有說,在我們給人家復(fù)現(xiàn)錯誤的時候發(fā)現(xiàn),錯誤竟然沒有了,留下自己在風(fēng)中凌亂。此處中槍的童鞋們請頂起來。。。。。。下面說說小編給別人調(diào)BUG時候遇到的問題如下:

請聽題:說出下面幾段js腳本的結(jié)果是什么?

<script type="text/javascript">
   Fn(); //執(zhí)行結(jié)果:?????
   function Fn(){
    alert("執(zhí)行了定義式函數(shù)");
   }
</script>
<script type="text/javascript">
   Fn(); //執(zhí)行結(jié)果:?????
  var Fun= function(){
    alert("執(zhí)行了賦值式函數(shù)");
   }
</script>
<script type="text/javascript">
   Fn(); //執(zhí)行結(jié)果:?????
   function Fn(){
    alert("執(zhí)行了函數(shù)1");
   }
   function Fn(){
    alert("執(zhí)行了函數(shù)2");
   }
</script>

如果你能很好的得出答案的話,說明你對JS的這兩種函數(shù)以及他們在執(zhí)行順序方面是比較清楚的,所以下面的講解你就可帶著審判的眼光來閱讀了,否則的話你就不得不好好看看下面的講解了,也許下面的講解會給你一些額外的驚喜。

通過上面的代碼中alet中的內(nèi)容我們就可以分辨出這兩種函數(shù),這兩種函數(shù)在js執(zhí)行的時候會出現(xiàn)一些區(qū)別,在JS的預(yù)編譯期,聲明式函數(shù)將會先被提取出來,然后才按順序執(zhí)行js代碼。

事實上,JS的解析過程分為兩個階段:預(yù)編譯期(預(yù)處理)與執(zhí)行期。

預(yù)編譯期JS會對本代碼塊中的所有聲明的變量和函數(shù)進行處理(類似與C語言的編譯),但需要注意的是此時處理函數(shù)的只是聲明式函數(shù),而且變量也只是進行了聲明但未進行初始化以及賦值。知道了這個原理以后我們就可以很好的分析上面的第一段js代碼了,第一個js代碼塊得出的結(jié)果是:執(zhí)行了alert函數(shù);而第二個js代碼塊得出的結(jié)果是:瀏覽器保存,提示函數(shù)未定義!這就是這兩種函數(shù)的不同。

第二段js代碼就是買一贈一優(yōu)惠政策,給讀者贈送的一些東西了,它執(zhí)行的結(jié)果是:彈出"執(zhí)行了函數(shù)2",這是因為在js中重名的函數(shù),后定義的會覆蓋前面定義的函數(shù),這種策略和js的順序執(zhí)行也是有關(guān)系的。小編在最近就是因為遇到了這種函數(shù)給我代碼的麻煩所以才查了一些資料來整理了這篇博客。

小結(jié)

在開始的時候代碼中寫是賦值式函數(shù),但是調(diào)用的代碼寫在了函數(shù)的前面從而導(dǎo)致程序出錯,因為之前對于賦值式函數(shù)見到的并不多,這不知道這兩種函數(shù)的區(qū)別,所以相當(dāng)熱的認為將調(diào)用函數(shù)的代碼寫在函數(shù)定義之前和之后是沒有影響的,所以給小編帶來很大的困惑。當(dāng)然也是我們思想上的相當(dāng)然帶來的后果,一些東西我們并沒有去驗證就認為應(yīng)該是這樣的,從而給我們帶來阻礙,在此也給廣大程序猿們警告哦。。。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運算用法總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》及《JavaScript遍歷算法與技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • JavaScript?error瀏覽器端錯誤捕獲處理方法筆記解決示例

    JavaScript?error瀏覽器端錯誤捕獲處理方法筆記解決示例

    這篇文章主要為大家介紹了JavaScript?error瀏覽器端錯誤捕獲處理方法筆記解決示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • js驗證電話號碼與手機支持+86的正則表達式

    js驗證電話號碼與手機支持+86的正則表達式

    本篇文章主要介紹了js驗證電話號碼與手機支持+86的正則表達式。需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • 理解Javascript文件動態(tài)加載

    理解Javascript文件動態(tài)加載

    這篇文章主要幫助大家理解Javascript文件動態(tài)加載,解決了Javascript文件動態(tài)加載時出現(xiàn)的錯誤,感興趣的小伙伴們可以參考一下
    2016-01-01
  • BootStrap Validator對于隱藏域驗證和程序賦值即時驗證的問題淺析

    BootStrap Validator對于隱藏域驗證和程序賦值即時驗證的問題淺析

    這篇文章主要介紹了BootStrap Validator對于隱藏域驗證和程序賦值即時驗證的問題的解決方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • JS實現(xiàn)頁面跳轉(zhuǎn)鏈接的幾種方式匯總

    JS實現(xiàn)頁面跳轉(zhuǎn)鏈接的幾種方式匯總

    這篇文章主要介紹了JS實現(xiàn)頁面跳轉(zhuǎn)鏈接的幾種方式,簡單總結(jié)了幾種頁面跳轉(zhuǎn)功能的實現(xiàn),有使用js跳轉(zhuǎn)頁面,返回上一次預(yù)覽界面及button按鈕添加事件跳轉(zhuǎn),本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2024-01-01
  • js實現(xiàn)彈窗效果

    js實現(xiàn)彈窗效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)彈窗效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • fullCalendar日歷插件玩法示例解析

    fullCalendar日歷插件玩法示例解析

    這篇文章主要介紹了fullCalendar日歷插件玩法示例解析,包括Fullcalendar安裝,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • es6中class類靜態(tài)方法,靜態(tài)屬性,實例屬性,實例方法的理解與應(yīng)用分析

    es6中class類靜態(tài)方法,靜態(tài)屬性,實例屬性,實例方法的理解與應(yīng)用分析

    這篇文章主要介紹了es6中class類靜態(tài)方法,靜態(tài)屬性,實例屬性,實例方法的理解與應(yīng)用,結(jié)合實例形式分析了es6 class類靜態(tài)方法,靜態(tài)屬性,實例屬性,實例方法相關(guān)概念、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2020-02-02
  • js的indexOf方法使用

    js的indexOf方法使用

    indexOf() 方法可返回數(shù)組中某個指定的元素位置,本文就來介紹一下js的indexOf方法使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2023-05-05
  • js點擊按鈕實現(xiàn)多張圖片循環(huán)切換

    js點擊按鈕實現(xiàn)多張圖片循環(huán)切換

    這篇文章主要為大家詳細介紹了js點擊按鈕實現(xiàn)多張圖片循環(huán)切換,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論