1. 5大主流瀏覽器及內核(自主研發)
瀏覽器 | 內核 |
---|---|
IE | trident |
Chrome | webkit blink |
Safari | webkit |
Firefox | gecko |
Opera | presto |
2. 瀏覽器的歷史 和 JS誕生
- 1989-1991 WorldWideWeb(后來為了避免與萬維網混淆而改名為Nexus)是世界上第一個網頁瀏覽器及所見即所得網頁編輯器,由萬維網的發明人蒂姆·伯納斯-李開發
v8
直接翻譯機器碼
獨立于瀏覽器運行(Node.js 就是一個基于 Chrome V8 引擎的 JavaScript 運行環境。)
3. ECMA
- European Computer Manufactures Association
- 歐洲計算機制造聯合會
- 評估、開發、認可電信、計算機標準
- ECMA - 262 腳本語言規范 ECMAScript
- ES5 ES6
- 規范化腳本語言
4. 編程語言
編程語言(高級語言)→ 需要翻譯成機器能理解的0 1
類型一:編譯型:源碼 → 編譯器 → 機器語言 → 可執行文件(執行前全翻譯完了)
- 有跨平臺移植問題
- 速度快(銀行系統、電商系統)C C#
類型二:解釋型:源碼 → 解釋器 → 解釋一行就執行一行
- 有解釋器就能運行,不需要根據不同的系統平臺進行移植
腳本語言 → (有對應的)腳本引擎 → (必須通過)解釋器(解釋后立即執行)
- JavaScript 客戶端腳本(F12檢查源碼能看到)
- php 服務端腳本(php和js代碼,f12是看不到php源碼的部分)
ECMAScript
DOM - document object model W3C規范
BOM - browser object model 沒有規范
大部分js代碼通過外部引入的方式
// html代碼塊中
<body><script type="text/javascript" src="js/index.js">document.write('只執行引入的js代碼')</script>
</body>
5. 變量
- 單一聲明方式: 一個var聲明多個變量
- 運算優先級高于賦值
var z = x + y
(先做加再賦值)
1. 命名規范:
- 不能以數字開頭
- 可以以
字母
_
$
開頭 - 可以含
字母
_
$``數字
- 不能使用關鍵字、保留字
- 語義化、結構化 js_header J_header
- 變量名小駝峰myEnglishName
2. JS的值
2.1 原始值
- 原始值 → 基本類型:
Number
String
Boolean
undefined
null
(最后兩個,只有一個值) - JS根據值判斷數據類型(弱類型語言)
- 動態語言 → 腳本語言 → 解釋型語言 → 弱類型語言
- 靜態語言 → 編譯型語言 → 強類型語言
- 除了null,其余原始值可以通過typeof得到類型(typeof null → ‘object’)
- 當函數無明確返回值時,返回的也是值 “undefined”
- 值 undefined 實際上是從值 null 派生來的,因此 ECMAScript 把它們定義為相等的。(null == undefined true)
- 盡管所有整數都可以表示為八進制或十六進制的字面量,但所有數學運算返回的都是十進制結果。
- 與無窮大一樣,NaN 也不能用于算術計算。NaN 的另一個奇特之處在于,它與自身不相等
// 數字類型沒有length屬性
1.length // Uncaught SyntaxError: Invalid or unexpected token
- 原始值沒有屬性,而值為數字類型的變量,可以調用方法,中間經過了基本包裝類的處理
// 值 undefined 并不同于未定義的值。但是,typeof 運算符并不真正區分這兩種值
var oTemp;alert(typeof oTemp); //輸出 "undefined"
alert(typeof oTemp2); //輸出 "undefined"// 如果對 oTemp2 使用除 typeof 之外的其他運算符的話,會引起錯誤,因為其他運算符只能用于已聲明的變量上。
var a = 3
var b = a
a = 1
// 原來a占據的1008空間還原,但是數據沒有刪除
// 原始數據類型:數據不可改
var arr1 = [1,2,3,4,5]
var arr2 = arr1
// 重新賦值arr1 原來1005空間釋放,數據還在
arr1 = [1,2]
ECMAScript 的字符字面量
2.2 引用值
object
array
function
date
RegExp
正則 Regular Expression
參考鏈接
網景百科
JS引擎
chrome
v8引擎
SUN公司
Oracle
W3C ECMAScript
ECMAScript原始類型