本文目錄一覽:
js 中的自執行函數到底是怎麼運行的?
其實不要被「函數表達式」的函數兩字束縛了,其實就是「表達式」,這樣一來就會好理解了。在表達式的前面加個邏輯運算符(比如!取反)或數學運算符(比如+),js就會認為你是要獲取表達式的值,這樣它就會去運行這個表達式,這樣函數就會被執行了。比如說有下面這個函數聲明:
function abc(){return true}
那麼執行 !abc() 時js就會先去調用abc函數,然後再把返回值取反,這個好理解吧?
而現在把abc直接替換為匿名函數:
!function(){return true}()
js也一樣會把!後面的部分當作一個表達式去運行,然後把取回的值進行取反,這個過程中匿名函數就會自動運行了。
其實 (function(){})(); 和 (function(){}()) 能夠自執行的原理也是一樣的,我加黑的那對括弧其實也是運算符(就好比小學數學中的 (2+3)×4 中的括弧),這樣js就會把括弧里的部分當作表達式來處理了。
所以,說到底函數的自執行其實並不是js的有意為之,而是一種無心插柳的行為,說是旁門左道也不為過,但它確實可以幫我們實現一些特殊的要求,所以就慢慢變成一種正經用法了。
JS編程是什麼意思?
計算機專業語言。
簡單來說,就是編寫編定程序,讓計算機代碼解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。
為了使計算機能夠理解人的想法,人類通過某種方式,將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴它,讓計算機完成人的指令。
js的問題,面試別人問了我以下問題,js的執行原理是什麼,
JavaScript是一種動態、弱類型、基於原型的語言,通過瀏覽器可以直接執行。
當瀏覽器遇到script 標記的時候,瀏覽器會執行之間的javascript代碼。嵌入的js代碼是順序執行的,每個腳本定義的全局變數和函數,都可以被後面執行的腳本所調用。 變數的調用,必須是前面已經聲明,否則獲取的變數值是undefined。
javascript的執行原理
1、客戶端請求某個網頁,即我們在上網時在地址欄中輸入某個網址,瀏覽器接收到網址之後,向遠程web伺服器提出請求2、web伺服器響應請求,web伺服器找到請求的頁面,並將整個頁面包含javascript的腳本代碼作為相應內容,發送回客戶端機器3、客戶端瀏覽器解釋並執行帶腳本的代碼,客戶端瀏覽器打開回應的網頁文件內容,從上往下逐行讀取並顯示其中的html或者腳本代碼,腳本是從伺服器端下載到客戶端,然後在客戶端進行的,即不佔用伺服器端的資源,因此通過客戶端腳本,客戶端分擔了伺服器的的任務,大大的減輕了伺服器的壓力,從而間接地提升了伺服器的性能
js的工作原理
JavaScript就是所謂的客戶端腳本語言,是一種在互聯網瀏覽器(瀏覽器也稱為Web客戶端,因為它連接到Web伺服器上,以下載頁面)內部運行的計算機編程語言。 也就是說,如果一個網頁里有js代碼,那麼,在打開這個網頁的時候,js代碼就會被自動下載到我們的瀏覽器里。它是在本地執行的程序,這樣可以減少服務端得壓力。
原創文章,作者:UF7JB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130843.html