JS入門

js 發(fā)展

瀏覽器發(fā)展史

第一個(gè)圖形瀏覽器是 Mosaic, 1993 年問(wèn)世,由馬克.安德森和伊利諾伊大學(xué)合作完成。

1994 年,馬克.安德森和 Silicon Graphics (SGI 硅圖)創(chuàng)始人吉姆.克拉克合作創(chuàng)立 Mosaic Communication Corporation .

Mosaic 公司成立后,由于伊利諾伊大學(xué)擁有 Mosaic 瀏覽器的商標(biāo)權(quán),并且將技術(shù)轉(zhuǎn)讓給 Spy Glass 公司。所以 馬克.安德森以及他的研發(fā)團(tuán)隊(duì)就重新寫了一個(gè)新的瀏覽器 Netscape Navigator ,1994 年 11 月 公司也改名叫 Netscape Communication Corporation ,中文翻譯 “網(wǎng)景”。

微軟的 Internet Explorer(IE)以及 Mozilla Firefox 等,早期的版本都是以 Mosaic 為基礎(chǔ)開發(fā)的。

微軟隨后買下了 Spy Glass 公司的技術(shù)開發(fā)出了 Internet Explorer。而 Mozilla Firefox 則是網(wǎng)景開放源代碼后所衍生的版本。

JavaScript 起源

1996 年,JavaScript 作為 Netscape Navigator 瀏覽器的一部分出現(xiàn)。最初的設(shè)計(jì)木匾是為了改善網(wǎng)頁(yè)的用戶體驗(yàn)。 作者:Brendan Eich

早期 JavaScript 命名為 LiveScript。

網(wǎng)景公司和 Sun 公司合作推廣,Sun 公司有一門語(yǔ)言叫 Java,所以改名 JavaScript。后來(lái) Sun 公司被 Oracle 公司收購(gòu),JavaScript 版權(quán)歸 Oracle 公司所有。

瀏覽器

瀏覽器分為 shell 和內(nèi)核

內(nèi)核:

  1. 渲染引擎
  2. js 引擎
  3. 其他模塊

js 引擎

2001 年微軟推出了 ie6,首次實(shí)現(xiàn)對(duì) js 引擎的優(yōu)化和分離。在此之前 js 并沒(méi)有單獨(dú)的與瀏覽器分離

2008 Google 發(fā)布最新瀏覽器 Chrome ,采用了 Google 開發(fā)的 V8 引擎。V8 引擎能夠把 js 代碼直接轉(zhuǎn)為機(jī)械碼來(lái)執(zhí)行。

后來(lái) Firefox 也推出了強(qiáng)大的 js 引擎

主流瀏覽器及內(nèi)核

市場(chǎng)份額在 3%以上,擁有自己的瀏覽器內(nèi)核。

  1. IE trident
  2. Chrome webkit/blink(2013)
  3. firefox Gecko
  4. Opera presto/blink(2013)
  5. Safari webkit

webkit 是一個(gè)開源的瀏覽器內(nèi)核,由于源代碼結(jié)構(gòu)清晰,易于維護(hù)被 Apple 公司采用,在 Safari 上使用。Google 也在 Chrome 上使用 webkit。

2013 年,Google 根據(jù) webkit 研發(fā)了自己的 blink 引擎,Opera 隨之也使用了 blink。

至此,現(xiàn)代瀏覽器主要內(nèi)核就只剩四個(gè):WebKit、Blink、Trident 和 Gecko

ECMA 標(biāo)準(zhǔn)

為了取得技術(shù)優(yōu)勢(shì),微軟推出了 JScript,CEnvi 推出了 ScriptEase,與 JavaScript 同樣可以在瀏覽器上運(yùn)行。為了統(tǒng)一規(guī)格 JavaScript 兼容于 ECMA(European Computer Manufacturers Association 歐洲計(jì)算機(jī)制造聯(lián)合會(huì)) 標(biāo)準(zhǔn),因此也成為 ECMAScript

ES5 、 ES6 、ES6+

JS 入門

js 是解釋性語(yǔ)言,單線程。

js 引用方式

<script type="text/javascript">console.log("hello world!")</script>

<script src="./index.js"></script>

如果在外部引入 js 標(biāo)簽里寫 js 代碼,不會(huì)生效。

變量(variable)

// 變量聲明
var a; // 向系統(tǒng)申請(qǐng)一個(gè)內(nèi)存空間
// 變量賦值
a = 100; // 賦值

// 簡(jiǎn)寫
var b = 100;
var c = 200;

// 多變量聲明
var b = 100,
  c = 200;

變量命名規(guī)則:

  1. 變量名必須以英文字母、下劃線_、$開頭
  2. 變量名可以包含英文字母、下劃線_、$、數(shù)字
  3. 不可用系統(tǒng)關(guān)鍵字、保留字作為變量名

變量名一定要好理解
大駝峰、小駝峰命名

數(shù)據(jù)類型

// 1. 原始值  stack
//   Number、Boolean、String、undefined、null
// Number 默認(rèn)為浮點(diǎn)型
var a = 1;
var b = 1.0;

// Boolean 只有兩個(gè)值,true false
var flag = true;

// String 字符
var str = "JS入門";

// 只聲明未賦值的變量,值就是undefined   define 定義
var c;
var d = undefined;

// null 一般來(lái)說(shuō)是用來(lái)占位用的,代表 空
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();

語(yǔ)法

  1. 以“;”結(jié)束
  2. 任何符號(hào)左右都有空格

瀏覽器控制臺(tái)的講解

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容