js歷史

1、前言:

  • 前段時間看紅寶書(JavaScript高級程序設計),但沒有計劃的去看,也沒有作詳細的筆記,讀了以後有點空虛,感受不對勁啊,學的東西很難記住,印象不深啊,有種挫敗感。
  • 做前端的js都學很差怎麼作前端。後端都學js了,你說死不死。
  • 所以吾閱之,再閱之,並決心記之以博客,以加強印象,做得讀書筆記,以便往後翻看及供你們參閱與討論。javascript

2、JavaScript歷史

  • 起源:話說在上世紀末1995年,Netscape公司推出Navigator瀏覽器。人家公司有追求,不僅僅能實現靜態HTML,人家還想要有動態效果,還想着能去處理表單的驗證,不要總是等到後臺那邊才知道表單輸入合不合法,特別在那個年代,一次一等就上分鐘,如今咱們等上個十秒都想關掉它是否是,嘴邊還吐槽着什麼破網站。html

  • 動手:有目標就去作,Netscape公司大牛多,Brendan Eich 用10天(網上說10天)就把JavaScript搞了出來,剛出來時叫LiveScript,爲了蹭蹭當紅明星Java熱度,就改爲JavaScript了,因此事實上他們兩沒啥關係。前端

  • 競爭:看到Netscape公司有了js,微軟感受不行啊,個人IE要被幹掉啊,同時也感到js的前途無量,因而弄了個名爲JScript的JavaScript的實現。java

  • 標準: Netscape和微軟競爭出現的js致使版本的不一致,隨着業界的擔憂,JavaScript的標準化被提上議事日程。ECMA組織就去幹這事,最後在弄出97年了ECMAScript做爲標準。這裏ECMAscript和JavaScript能夠看作表達同一個東西編程

3、ECMAScript

ECMAScript(如下簡稱ES)由ECMA-262制定,ES的主要是語言的語法基礎,是一種標準的存在。若是硬要區分ES和JS,ES是語言基礎標準,而JS就是在這標準的基礎上所實現的語言。後端

關於ES版本:ES從1997年制定好到如今已經經歷不少版本,前面的版本都是一些小的修改。重要版本:瀏覽器

  • ES3,第三個版本,是對標準的第一次真正意義上修改
  • 2009年的ES5是當前各大流行瀏覽器所支持的
  • 2015年出版的ES6也流行起來。
  • 2015年後的每一年也出版本,但瀏覽器還沒可以支持。

4、JavaScript實現

javascript由三部分組成:

1.ECMAScript :核心部分,是js的語法基礎,後面會繼續寫其語法。
2.DOM(文本對象模型) :用於操做HTML文檔的應用編程接口。關於DOM:緩存

  • DOM的出現使得動態HTML(DHTML)得以實現,能夠不用從新加載頁面而改變網頁的外觀和內容。
  • DOM帶來的問題:主要是兼容性方面,Netscape和微軟各抒己見,使得瀏覽器不兼容的局面產生。未解決此問題W3C着手規劃DOM
  • DOM級別:DOM1,DOM2,DOM3 ,這裏的級別至關於DOM的版本同樣,表明着DOM在不斷的完善,如今最新是DOM3

3.BOM(瀏覽器模型) :使用BOM能夠控制瀏覽器顯示的頁面之外的部分markdown

5、JavaScript使用:

(1)標籤屬性:在網頁中使用js關鍵的是使用<script>標籤,其有6個屬性:

  1. async:可選,表示當即下載腳本,但不妨礙頁面中的其餘操做。也就是異步腳本,只適用於外部腳本文件。
  2. defer:可選,表示腳本能夠延遲到文檔徹底被解析和顯示後在執行。也就是延遲腳本,只適合與外部腳本文件。
  3. src:可選,表示包含要執行代碼的外部文件。
  4. type:默認text/Javascript。默認執行js,能夠不用指定。
  5. charset:可選,表示經過src屬性指定代碼的字符集,大多數瀏覽器會忽略它的值,不多人使用。
  6. language:已廢棄
    經常使用就前4個

(2)使用:使用<script > :有兩種操做:

1. 直接在標籤內寫入代碼,即在html中內嵌代碼,這種方式不推薦。如:
<script> function helloWorld(){ alert("hello world!"); } helloWorld(); </script>
2. 另外一種經過src屬性引入外部的文件。
<script src="js/hello.js"></script>

儘量使用外部引用js文件,優勢:異步

  • 可維護性:內嵌代碼在html中,維護困難且可讀性差,在js單獨的文件中維護將輕鬆的多。

  • 可緩存:瀏覽器能夠根據具體的設置緩存連接的所用外部js文件

  • 適應將來:經過外部文件來包含js無須對XHML的特別處理和註釋hack。HTML和XHTML的包含文件的語法相同。

特別注意:<script>在使用了src屬性後,不要在內嵌代碼,此時的內嵌的代碼不會被執行。只會執行src對應文件的代碼。

(3)位置:關於<script> 在HTML文檔中的位置:

在HTML4中規定<script> 標籤能夠放在 <head><body> 標籤內。
因爲瀏覽器解析HTML文檔是由上到下,且在遇到<script> 標籤後會先解析和執行js代碼,並中斷HTML的加載,因此放在<head> 標籤中是會使得HTML文檔可視內容中斷加載。
畫重點:因此<script> 標籤的位置首考慮放在<body> 標籤底部。例如:

<html> <head> <title>hello js</title> </head> <body> <p>hello js!</p> <!-- js文件放在body底部 --> <script src="example.js"></script> </body> </html>

6、JavaScript的平穩退化方案

什麼是平穩退化:就是有些瀏覽器不支持js,固然如今幾乎沒有瀏覽器這麼菜啦,還有就是js功能被禁用。這時就須要沒有js的狀況下你的網頁怎麼友好一點交互,不會搞得太難看,太尷尬。
使用<noscript> 標籤,應用場景:

  • 瀏覽器不支持JavaScript
  • 瀏覽器支持腳本,但腳本被禁止了

例子:當瀏覽器不支持js或禁用js時就會顯示出noscript標籤中的內容,若瀏覽器能執行js則noscript就被隱藏。

<html> <head> <script src="example.js"></script> </head> <body> <noscript> <p>本頁面須要瀏覽器支持JavaScript</p> </noscript> </body> </html>
相關文章
相關標籤/搜索