js執行代碼原理(js編譯原理)

本文目錄一覽:

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UF7JB的頭像UF7JB
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Harris角點檢測演算法原理與實現

    本文將從多個方面對Harris角點檢測演算法進行詳細的闡述,包括演算法原理、實現步驟、代碼實現等。 一、Harris角點檢測演算法原理 Harris角點檢測演算法是一種經典的計算機視覺演算法…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29

發表回復

登錄後才能評論