整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript設計時借鑒了哪些語言的特性?

          JavaScript設計時借鑒了哪些語言的特性?

          rendan Eich 在 1995 年創造了 JavaScript,這門語言的設計是一個“大雜燴”,融合了多種編程語言的元素和思想。這種多源性使 JavaScript 具備了靈活性和多樣性。下面詳細說明這幾個主要來源及其對 JavaScript 的影響:


          ### 1. 基本語法:借鑒 C 語言和 Java 語言


          - **C 語言**:JavaScript 的許多基本語法來自 C 語言,包括大括號 `{}` 用于代碼塊、控制結構(如 `if`、`for`、`while`)、表達式語法及運算符等。這使得開發者可以更容易上手,因為 C 語言影響了很多其他編程語言。

          - **Java 語言**:JavaScript 的一些面向對象的特性和命名習慣(如 `class`、`extends` 等)在后來的版本中也受到了 Java 的影響,雖然在早期版本中并不明顯。


          ### 2. 數據結構:借鑒 Java 語言


          - **原始值和對象**:JavaScript 借鑒了 Java 的概念,將數據分為原始值(如 `number`, `string`, `boolean`, `null`, `undefined`, `symbol`)和對象。這種分類幫助開發者更好地理解和管理數據。


          ### 3. 函數的用法:借鑒 Scheme 語言和 Awk 語言


          - **Scheme 語言**:JavaScript 將函數視為第一等公民(first-class citizens),這意味著函數可以存儲在變量中、作為參數傳遞以及作為返回值。這種特性來自函數式編程語言 Scheme。

          - **Awk 語言**:閉包(closure)的概念也是 JavaScript 的重要特性之一,允許函數捕獲并記住其詞法作用域中的變量。Awk 語言中的函數處理方式也對這一特性有一定的影響。


          ### 4. 原型繼承模型:借鑒 Self 語言


          - **Self 語言**:JavaScript 的原型繼承模型不同于傳統的類繼承(如 C++ 或 Java)。在 JavaScript 中,對象可以直接從其他對象繼承屬性和方法,這種機制是受 Self 語言啟發的。Self 是 Smalltalk 的一種變種,強調對象直接從其他對象繼承特性。


          ### 5. 正則表達式:借鑒 Perl 語言


          - **Perl 語言**:JavaScript 的正則表達式語法和功能強烈借鑒了 Perl,Perl 是以強大的文本處理能力著稱的編程語言。這使得 JavaScript 在字符串操作和文本匹配方面非常強大。


          ### 6. 字符串和數組處理:借鑒 Python 語言


          - **Python 語言**:JavaScript 中的字符串和數組處理方法(如 `split`、`join`、`slice`、`map`、`filter` 等)在設計上受到了 Python 的影響,提供了簡潔而強大的數據處理能力。


          通過融合這些語言的特性,JavaScript 成為了一個靈活多變、易于學習和使用的編程語言,并隨著時間的推移不斷演進,成為現代 Web 開發的核心技術之一。


          我的文章可能還有不足之處,如有不同意見,請留言討論。

          romise是js中類似string,arry ,object,function,boolean等的一個類型,是一個特殊的 JavaScript 對象。

          Promise是一種異步編程的解決方案,用于處理異步操作并返回結果。主要作用是解決回調函數嵌套(回調地獄)的問題,使異步操作更加清晰、易于理解和維護。

          官方給出的例子:關于回調嵌套

          用promise解決:

          關于回調嵌套這個例子雖然簡單明了,但是沒有太多實際應用意義。實際項目開發過程中可以通過合理的設計避免這種嵌套。


          又想了想,究竟什么場景下會是這種回調嵌套呢,又要求這種場景通俗易懂,很合理。

          想了想,構思了個如下的例子。

          1、老師讓你去宿舍找某某同學,跟他說下午到辦公室來一趟。對于辦事負責任的你來說,找到某某同學后要給老師回復一句“找到他了,下來能來”,或者“他不在,已跟他宿舍的人說了”。(回調1)

          2、你來到宿舍,發現某某同學不在,有個大神在宿舍玩游戲。負責任的你必須把話帶到,于是你對大神說話。大神正在忙著王者榮耀,正在緊要關頭,手忙腳亂的飛快操作著手機,對你吼了一句“稍等!容我玩完這一局!”,你只好看著大神玩,等待玩完。(嵌套回調2,等大神有空)

          3、此時,宿舍中的wifi出現問題,加之大神的手機不是“遙遙領先”,大神的游戲卡住了,大神無奈只能飆出一句國罵,然后無奈的等游戲恢復正常(嵌套回調3,等不卡)

          4、經過XX秒,大神手機恢復正常(嵌套回調3完成),大神終于finish了這一局。(嵌套回調2完成)

          5、大神抬起帶著血絲的眼睛,對你投來微笑。你趕緊對他說了事,大神滿口答應。你匆匆回到辦公室,回復老師。(回調1,終于完成)。

          、語法

          1. 用兩個空格來代替制表符(tab) 2.嵌套元素應當縮進一次(即兩個空格)。 3.對于屬性的定義,確保全部使用雙引號,絕不要使用單引號。 4.不要省略可選的結束標簽(例如,</li> 或 </body>)。

          二、IE 兼容模式

          每個頁面都添加<meta>標簽,從而通知 IE 采用其所支持的最新的模式。 <meta http-equiv="X-UA-Compatible" content="IE=Edge">

          三、字符編碼

          每個頁面都添加<meta>標簽,從而全部與文檔編碼一致(一般采用 UTF-8 編碼)。 <meta charset="UTF-8">

          四、引入 CSS 和 JavaScript 文件

          根據 HTML5 規范,在引入 CSS 和 JavaScript 文件時一般不需要指定 type屬性,因為 text/css 和 text/javascript 分別是它們的默認值。

          五、屬性順序

          HTML 屬性應當按照以下給出的順序依次排列,確保代碼的易讀性。

          例子:

          六、布爾(boolean)型屬性

          布爾型屬性可以在聲明時不賦值。XHTML 規范要求為其賦值,但是 HTML5 規范不需要。 簡單來說,就是不用賦值。 例子:

          七、減少標簽的數量

          編寫 HTML 代碼時,盡量避免多余的父元素。很多時候,這需要迭代和重構來實現。請看下面的案例:


          主站蜘蛛池模板: 色狠狠AV一区二区三区| 美女啪啪一区二区三区| 国产日产久久高清欧美一区| 一本一道波多野结衣AV一区| 女女同性一区二区三区四区| 东京热人妻无码一区二区av| 男插女高潮一区二区| 亚洲AV无码第一区二区三区| 国产在线一区视频| 国产成人一区二区三区在线观看| 日韩精品免费一区二区三区| 激情内射亚洲一区二区三区| 日本在线视频一区| 日韩精品无码久久一区二区三| 亚洲一区二区三区高清在线观看| 国产探花在线精品一区二区| 亚洲国产av一区二区三区| 成人免费视频一区二区三区| 国产美女口爆吞精一区二区| 一区二区不卡在线| 无码精品一区二区三区免费视频 | 成人精品视频一区二区三区尤物| V一区无码内射国产| 国产乱码精品一区二区三区四川人 | 国模无码人体一区二区| 一区二区三区久久精品| 人妻内射一区二区在线视频| 日本一区二区三区在线网| 久久国产精品一区| 88国产精品视频一区二区三区| 亚洲色偷偷偷网站色偷一区| 亚洲Av无码国产一区二区| 国产一区二区三区在线免费观看 | 日韩一区二区在线观看视频| 精品乱码一区二区三区四区| 在线观看国产一区二区三区| 成人国内精品久久久久一区 | 国产在线一区二区| 性色av无码免费一区二区三区 | 91精品福利一区二区| 视频一区二区三区在线观看|