摘要:通常一個(gè)完成的不僅僅包含了還包括了以及相關(guān)版本該版本在中使用?;谠秃瘮?shù)先行的語(yǔ)言使用基于原型的的繼承機(jī)制,函數(shù)是的第一等公民其他相關(guān)的語(yǔ)言特性編譯型語(yǔ)言把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序。
轉(zhuǎn)載請(qǐng)注明出處,創(chuàng)作不易,更多文章請(qǐng)戳 https://github.com/ZhengMaste...
前言:JavaScript誕生于1995年,它是一門(mén)腳本語(yǔ)言,起初的目的就是為了解決前端頁(yè)面的動(dòng)態(tài)效果,以及表單輸入效驗(yàn)操作之類的。JavaScript的是由一家名為網(wǎng)景公司開(kāi)發(fā)的,但是1997年網(wǎng)景公司將它交給了歐洲計(jì)算機(jī)制造協(xié)會(huì)(ECMA),并在同年完成了ECMA—262,定義名為ECMAScript的新標(biāo)準(zhǔn)的腳本語(yǔ)言。JavaScript是JavaScript的規(guī)格,而JavaScript是ECMAScript的一種實(shí)現(xiàn)。(通常一個(gè)完成的JavaScript不僅僅包含了ECMAScript還包括了DOM以及BOM)
相關(guān)版本:
JavaScript 1.1 該版本在Netscape Navigator 3.0中使用。發(fā)布于1996年8月19日。 JavaScript 1.3 發(fā)布于1998年10月19日。符合ECMA-262第1版和第2版的標(biāo)準(zhǔn)。 JavaScript 1.5 發(fā)布于2000年11月14日。符合ECMA-262第3版的標(biāo)準(zhǔn)。 JavaScript 1.6 發(fā)布于發(fā)布于2005年11月。加入了XML(E4X),Array方法,String以及泛型。 JavaScript 1.7 增加了許多東西,包括生成器,迭代器,數(shù)組解析,let表達(dá)式和解構(gòu)賦值 JavaScript 1.8.5 包括符合ECMA-262 Edition 5的許多新功能。 這是最后一個(gè)JavaScript版本。
1997年7月,ECMAScript 1.0發(fā)布。
1998年6月,ECMAScript 2.0版發(fā)布。
1999年12月,ECMAScript 3.0版發(fā)布,成為 JavaScript 的通行標(biāo)準(zhǔn),得到了廣泛支持
2009年12月,4.0版本爭(zhēng)議太大沒(méi)有發(fā)布,ECMAScript 5.0版 正式發(fā)布
2011年6月,ECMAScript 5.1版發(fā)布,并且成為 ISO 國(guó)際標(biāo)準(zhǔn)
2015年6月,ECMAScript 6 正式發(fā)布,并且更名為“ECMAScript 2015”,常稱為es6
2016年6月,ES2016發(fā)布,es7
2017年6月,ES2017發(fā)布, es8
JavaScript特性首先我們查一下官方的定義,在維基百科里它是這樣定義javascript這門(mén)語(yǔ)言的。
**JavaScript(通??s寫(xiě)為JS)是一種高級(jí)的、解釋型的編程語(yǔ)言。JavaScript是一門(mén)基于原 型、函數(shù)先行的語(yǔ)言,是一門(mén)多范式的語(yǔ)言,它支持面向?qū)ο缶幊?,命令式編程,以及函?shù) 式編程。**
在客戶端,JavaScript在傳統(tǒng)意義上被實(shí)現(xiàn)為一種解釋語(yǔ)言,但在最近,它已經(jīng)可以被即時(shí)編譯(JIT)執(zhí)行。隨著最新的HTML5和CSS3語(yǔ)言標(biāo)準(zhǔn)的推行它還可用于游戲、桌面和移動(dòng)應(yīng)用程序的開(kāi)發(fā)和在服務(wù)器端網(wǎng)絡(luò)環(huán)境運(yùn)行,如Node.js。
特性: 一、運(yùn)行在客戶端瀏覽器上; 二、不用預(yù)編譯,直接解析執(zhí)行代碼; 三、是弱類型語(yǔ)言,較為靈活; 四、與操作系統(tǒng)無(wú)關(guān),跨平臺(tái)的語(yǔ)言; 五、腳本語(yǔ)言、解釋性語(yǔ)言 解釋性語(yǔ)言:把做好的源程序翻譯一句,然后執(zhí)行一句,直至結(jié)束; 執(zhí)行速度慢、效率低;依靠解釋器、跨平臺(tái)性好 (Php、javascript、Pyhton) 弱類型語(yǔ)言:不需要給一個(gè)變量指定特定的數(shù)據(jù)類型,允許隱式類型轉(zhuǎn)換, 即時(shí)編譯(JIT):Just-in-time compilation,縮寫(xiě):JIT,是一種提高程序運(yùn)行效率的方法 命令式編程:命令式編程的主要思想是關(guān)注計(jì)算機(jī)執(zhí)行的步驟,即一步一步告訴計(jì)算機(jī)先做什么再做什么 函數(shù)式編程:函數(shù)式編程和聲明式編程是有所關(guān)聯(lián)的,因?yàn)樗麄兯枷胧且恢碌模杭粗魂P(guān)注做什么而不是怎么做。 但函數(shù)式編程不僅僅局限于聲明式編程,函數(shù)式編程最重要的特點(diǎn)是“函數(shù)第一位”,即函數(shù)可以出現(xiàn)在任何地方. 比如你可以把函數(shù)作為參數(shù)傳遞給另一個(gè)函數(shù),不僅如此你還可以將函數(shù)作為返回值。 基于原型、函數(shù)先行的語(yǔ)言:js使用基于原型的的繼承機(jī)制,函數(shù)是js的第一等公民其他相關(guān)的語(yǔ)言特性
編譯型語(yǔ)言:把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序。然后,可直接運(yùn)行這個(gè)程序編譯型語(yǔ)言,執(zhí)行速度快、效率高;依靠編譯器、跨平臺(tái)性差些。
強(qiáng)類型語(yǔ)言:強(qiáng)類型語(yǔ)言,當(dāng)你定義一個(gè)變量是某個(gè)類型,如果不經(jīng)過(guò)代碼顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)化)過(guò),它就永遠(yuǎn)都是這個(gè)類型,如果把它當(dāng)做其他類型來(lái)用,就會(huì)報(bào)錯(cuò)
動(dòng)態(tài)類型語(yǔ)言:動(dòng)態(tài)類型語(yǔ)言是指在運(yùn)行期間才去做數(shù)據(jù)類型檢查的語(yǔ)言,也就是說(shuō),在用動(dòng)態(tài)類型的語(yǔ)言編程時(shí),永遠(yuǎn)也不用給任何變量指定數(shù)據(jù)類型,該語(yǔ)言會(huì)在你第一次賦值給變量時(shí),在內(nèi)部將數(shù)據(jù)類型記錄下來(lái)。例如JavaScript,Php,Python
靜態(tài)類型語(yǔ)言:靜態(tài)類型語(yǔ)言與動(dòng)態(tài)類型語(yǔ)言剛好相反,它的數(shù)據(jù)類型是在編譯其間檢查的,也就是說(shuō)在寫(xiě)程序時(shí)要聲明所有變量的數(shù)據(jù)類型,C/C++是靜態(tài)類型語(yǔ)言的典型代表,其他的靜態(tài)類型語(yǔ)言還有C#、JAVA等
聲明式編程:聲明式編程是以數(shù)據(jù)結(jié)構(gòu)的形式來(lái)表達(dá)程序執(zhí)行的邏輯。它的主要思想是告訴計(jì)算機(jī)應(yīng)該做什么,但不指定具體要怎么做。它有一個(gè)特點(diǎn)是它不需要?jiǎng)?chuàng)建變量用來(lái)存儲(chǔ)數(shù)據(jù),另一個(gè)特點(diǎn)是它不包含循環(huán)控制的代碼如 for, while(SQL 語(yǔ)句,網(wǎng)頁(yè)編程中用到的 HTML 和 CSS 也都屬于聲明式編程)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/104361.html
摘要:正大力推進(jìn),網(wǎng)景通訊公司即將與他們達(dá)成一項(xiàng)協(xié)議,讓可以用在瀏覽器上。年月,網(wǎng)景通訊公司和達(dá)成協(xié)議將被重新命名為,它將會(huì)作為瀏覽器中小型客戶端任務(wù)的一種腳本語(yǔ)言,同時(shí)將會(huì)被提升為一種更大的開(kāi)發(fā)富組件的專業(yè)工具。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事審校: 為之漫筆鏈接:http://www.zcfy.cc/article/2389原文:https://auth0.com/blog/a-...
摘要:他們的計(jì)劃是,使用微軟開(kāi)發(fā)者們所習(xí)慣的其他語(yǔ)言的開(kāi)發(fā)工具所支持的靜態(tài)類型,得到更好的代碼。在微軟內(nèi)部,被和以及團(tuán)隊(duì)所使用,而且它被系的等公司使用。標(biāo)準(zhǔn)的編輯,同時(shí)也是微軟項(xiàng)目高級(jí)經(jīng)理的也同意。 本文轉(zhuǎn)載自:眾成翻譯譯者:文藺鏈接:http://www.zcfy.cc/article/895原文:http://thenewstack.io/javascript-transpilers-n...
摘要:然而,臨近規(guī)范發(fā)布時(shí),有建議提及未來(lái)的版本號(hào)切換為編年制,比如用同來(lái)指代在年末前被定稿的所有版本??偟脕?lái)說(shuō)就是版本號(hào)不再那么重要了,開(kāi)始變得更像一個(gè)萬(wàn)古長(zhǎng)青的活標(biāo)準(zhǔn)。 你不知道的JS(下卷)ES6與之未來(lái) 第一章:ES的今與明 在你想深入這本書(shū)之前,你應(yīng)該對(duì)(在讀此書(shū)時(shí))JavaScript的最近標(biāo)準(zhǔn)掌握熟練,也就是ES5(專業(yè)來(lái)說(shuō)是ES 5.1)。在此,我們決定全方面地談?wù)撽P(guān)于將近的...
摘要:為此決定自研一個(gè)富文本編輯器。本文,主要介紹如何實(shí)現(xiàn)富文本編輯器,和解決一些不同瀏覽器和設(shè)備之間的。 對(duì)ES6Generator函數(shù)的理解 Generator 函數(shù)是 ES6 提供的一種異步編程解決方案,語(yǔ)法行為與傳統(tǒng)函數(shù)完全不同。 JavaScript 設(shè)計(jì)模式 ② 巧用工廠模式和創(chuàng)建者模式 我為什么把他們兩個(gè)放在一起講?我覺(jué)得這兩個(gè)設(shè)計(jì)模式有相似之處,有時(shí)候會(huì)一個(gè)設(shè)計(jì)模式不能滿...
閱讀 3010·2021-11-22 09:34
閱讀 1281·2021-11-19 09:40
閱讀 3423·2021-10-14 09:43
閱讀 3637·2021-09-23 11:22
閱讀 1673·2021-08-31 09:39
閱讀 979·2019-08-30 15:55
閱讀 1488·2019-08-30 15:54
閱讀 920·2019-08-30 15:53