js 發(fā)展
瀏覽器發(fā)展史
第一個圖形瀏覽器是 Mosaic, 1993 年問世,由馬克.安德森和伊利諾伊大學合作完成窒所。
1994 年岛抄,馬克.安德森和 Silicon Graphics (SGI 硅圖)創(chuàng)始人吉姆.克拉克合作創(chuàng)立 Mosaic Communication Corporation .
Mosaic 公司成立后礁遵,由于伊利諾伊大學擁有 Mosaic 瀏覽器的商標權险毁,并且將技術轉讓給 Spy Glass 公司翠胰。所以 馬克.安德森以及他的研發(fā)團隊就重新寫了一個新的瀏覽器 Netscape Navigator ,1994 年 11 月 公司也改名叫 Netscape Communication Corporation ,中文翻譯 “網(wǎng)景”棺聊。
微軟的 Internet Explorer(IE)以及 Mozilla Firefox 等韧拒,早期的版本都是以 Mosaic 為基礎開發(fā)的淹接。
微軟隨后買下了 Spy Glass 公司的技術開發(fā)出了 Internet Explorer。而 Mozilla Firefox 則是網(wǎng)景開放源代碼后所衍生的版本叛溢。
JavaScript 起源
1996 年塑悼,JavaScript 作為 Netscape Navigator 瀏覽器的一部分出現(xiàn)。最初的設計木匾是為了改善網(wǎng)頁的用戶體驗楷掉。 作者:Brendan Eich
早期 JavaScript 命名為 LiveScript厢蒜。
網(wǎng)景公司和 Sun 公司合作推廣,Sun 公司有一門語言叫 Java靖诗,所以改名 JavaScript郭怪。后來 Sun 公司被 Oracle 公司收購,JavaScript 版權歸 Oracle 公司所有刊橘。
瀏覽器
瀏覽器分為 shell 和內(nèi)核
內(nèi)核:
- 渲染引擎
- js 引擎
- 其他模塊
js 引擎
2001 年微軟推出了 ie6鄙才,首次實現(xiàn)對 js 引擎的優(yōu)化和分離。在此之前 js 并沒有單獨的與瀏覽器分離
2008 Google 發(fā)布最新瀏覽器 Chrome 促绵,采用了 Google 開發(fā)的 V8 引擎攒庵。V8 引擎能夠把 js 代碼直接轉為機械碼來執(zhí)行嘴纺。
后來 Firefox 也推出了強大的 js 引擎
主流瀏覽器及內(nèi)核
市場份額在 3%以上,擁有自己的瀏覽器內(nèi)核浓冒。
- IE trident
- Chrome webkit/blink(2013)
- firefox Gecko
- Opera presto/blink(2013)
- Safari webkit
webkit 是一個開源的瀏覽器內(nèi)核栽渴,由于源代碼結構清晰,易于維護被 Apple 公司采用稳懒,在 Safari 上使用闲擦。Google 也在 Chrome 上使用 webkit。
2013 年场梆,Google 根據(jù) webkit 研發(fā)了自己的 blink 引擎墅冷,Opera 隨之也使用了 blink。
至此或油,現(xiàn)代瀏覽器主要內(nèi)核就只剩四個:WebKit寞忿、Blink、Trident 和 Gecko
ECMA 標準
為了取得技術優(yōu)勢顶岸,微軟推出了 JScript腔彰,CEnvi 推出了 ScriptEase,與 JavaScript 同樣可以在瀏覽器上運行辖佣。為了統(tǒng)一規(guī)格 JavaScript 兼容于 ECMA(European Computer Manufacturers Association 歐洲計算機制造聯(lián)合會) 標準霹抛,因此也成為 ECMAScript
ES5 、 ES6 凌简、ES6+
JS 入門
js 是解釋性語言上炎,單線程。
js 引用方式
<script type="text/javascript">console.log("hello world!")</script>
<script src="./index.js"></script>
如果在外部引入 js 標簽里寫 js 代碼雏搂,不會生效藕施。
變量(variable)
// 變量聲明
var a; // 向系統(tǒng)申請一個內(nèi)存空間
// 變量賦值
a = 100; // 賦值
// 簡寫
var b = 100;
var c = 200;
// 多變量聲明
var b = 100,
c = 200;
變量命名規(guī)則:
- 變量名必須以英文字母、下劃線_凸郑、$開頭
- 變量名可以包含英文字母裳食、下劃線_、$芙沥、數(shù)字
- 不可用系統(tǒng)關鍵字诲祸、保留字作為變量名
變量名一定要好理解
大駝峰、小駝峰命名
數(shù)據(jù)類型
// 1. 原始值 stack
// Number而昨、Boolean救氯、String、undefined歌憨、null
// Number 默認為浮點型
var a = 1;
var b = 1.0;
// Boolean 只有兩個值着憨,true false
var flag = true;
// String 字符
var str = "JS入門";
// 只聲明未賦值的變量,值就是undefined define 定義
var c;
var d = undefined;
// null 一般來說是用來占位用的务嫡,代表 空
var e = null;
// 2. 引用值 heap
// Array Object function Date RegExp
var arr = [];
arr = [0, 1, 2];
arr = [0, 1, 2, "string"];
var obj = {};
obj = {
name: "朱明宇"
};
obj.address = "馬澗";
var test = function() {};
var date = new Date();
var reg = new RegExp();
語法
- 以“;”結束
- 任何符號左右都有空格