第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript的函數(shù)為什么可以在定義之前調(diào)用?

JavaScript的函數(shù)為什么可以在定義之前調(diào)用?

至尊寶的傳說 2018-07-31 15:07:46
如下,為什么可以在函數(shù)f定義之前就調(diào)用呢?編譯器是如何處理的呢?f();function f(){     alert("hehe"); }
查看完整描述

1 回答

?
慕的地6264312

TA貢獻1817條經(jīng)驗 獲得超6個贊

目前的編程語言分為編譯型語言和解釋行語言。

編譯型語言在程序執(zhí)行之前,有一個單獨的編譯過程,將程序翻譯成機器語言,以后執(zhí)行這個程序的時候,就不用再進行翻譯了。
而編譯后需要進行連接,結(jié)果沒有前置聲明,連接器無法知道對應符號的位置,因此無法將多個文件鏈接到一起。所以此類語言在使用對應的變量之前必須要進行對應的聲明。

解釋型語言,是在運行的時候?qū)⒊绦蚍g成機器語言,所以運行速度相對于編譯型語言要慢。目前的腳本語言基本都是解釋型語言,他們一般都有相應的腳本引擎來解釋執(zhí)行,他們一般需要解釋器才能運行。
由此,javascriptphp等腳本語言理論上是根本不需要手動聲明的,因為解釋器會在執(zhí)行前把整個腳本加載到內(nèi)存中,抓取其中的聲明部分,然后進行處理對應的函數(shù)流程,然后再從頭開始執(zhí)行。這一過程稱為解釋。解釋器幫你做了許許多多的事情,比如申請內(nèi)存,釋放內(nèi)存,垃圾回收,線程同步,區(qū)域通信,變量管理等,區(qū)區(qū)聲明,自然不在話下。

以上。


查看完整回答
反對 回復 2018-09-16
  • 1 回答
  • 0 關注
  • 547 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號