生活随笔
收集整理的這篇文章主要介紹了
ECMAScript-1【发展史-ECMA-编程语言-变量-JS值】
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一.發(fā)展史及瀏覽器內(nèi)核
瀏覽器內(nèi)核
? ? ? ? 火狐:gecko
? ? ? ? chrome:webkit blink
? ? ? ? IE:trident
? ? ? ? 歐鵬:presto blink
? ? ? ? safari:webkit
? ? ?2.發(fā)展史
1990年覽器誕生,蒂姆伯納斯李 超文本分享資訊的人world wide web? 移植到C libwww/nexus允許別人瀏覽他人編寫的網(wǎng)站MOSAIC1993年 美國伊利諾大學(xué)NCSAZ組織(馬克 安德森)開發(fā)了MOSAIC瀏覽器顯示圖片,圖形化瀏覽器1994年 馬克安德森和吉姆克拉克(硅圖SGI),成立了一個(gè)公司MOSIAC communication corporation corporation標(biāo)權(quán)屬于伊利諾大學(xué),伊利諾大學(xué)把MOSIAC轉(zhuǎn)賣給了spy glcass 網(wǎng)景公司->netscape navigator1996年 微軟的公司收購了spy glass,然后在MOSAIC內(nèi)核開發(fā)出來了 IE internet explorer1.0,同年IE3發(fā)布了 Jscript腳本語言,網(wǎng)景公司Brendan eich在netscape navigator 開發(fā)出了livescript(JS)的前身,JAVA火起來,網(wǎng)景l(fā)ivesript不溫不火,后面就和SUN公司,合作推廣和宣傳產(chǎn)品,livesript 更名為javascript2001年 IE6和XP誕生,出現(xiàn)了JS引擎2003年 Mozilla公司 firefox? 是根據(jù)netscape? avigator復(fù)制出來的2008年 google基于webkit blink GEARS離線上網(wǎng),開發(fā)出來chrome瀏覽器 ->V8引擎JS引擎非常牛逼:a直接翻譯機(jī)器碼、b獨(dú)立于瀏覽器運(yùn)行2009年? 甲骨文oracle收購了SUN公司,JS的所有權(quán)給甲骨文
二.ECMA
ECMA 全稱 European Computer Manufactures Association
歐洲計(jì)算機(jī)制造聯(lián)合會(huì)
作用: 評估、開發(fā)、認(rèn)可電信、計(jì)算機(jī)標(biāo)準(zhǔn)
三.編程語言
ECMA-262 腳本語言的規(guī)范
(1).腳本語言:
->腳本引擎->解釋器
(2).編程四要素:
變量數(shù)據(jù)結(jié)構(gòu)函數(shù)運(yùn)算能力
(3).強(qiáng)類型弱類型
動(dòng)態(tài)語言->腳本語言->解釋性語言->弱類型語言
靜態(tài)語言->編譯型語言->強(qiáng)類型語言
(4).前后端腳本
前端:javascript 客戶端腳本
后端: php 服務(wù)端腳本
(5).IE的jscript
jscript只支持微軟IE
vbscript
(6).JS內(nèi)容
ECMAscript:語法、變量、關(guān)鍵字、保留字..
DOM:document object model W3C
BOM:browser object model 沒有規(guī)范
(7).輪轉(zhuǎn)時(shí)間片
JS引擎是單線程的但是可以模擬多線程
實(shí)現(xiàn)原理:短時(shí)間之內(nèi)執(zhí)行多個(gè)任務(wù)的片段
任務(wù)1 任務(wù)2 切分任務(wù)1 任務(wù)2 隨機(jī)排列這些任務(wù)片段,組成隊(duì)列 按照這個(gè)隊(duì)列順序?qū)⑷蝿?wù)片送進(jìn)JS進(jìn)程 JS線程執(zhí)行一個(gè)又一個(gè)的任務(wù)片段
(8).模板
四.變量
(1).命名規(guī)范:
不能以數(shù)字開頭 能以字母_$開頭 不能命名保留字和關(guān)鍵字
?五.JS的值
(1).原始值(基本類型)
Number(NaN為數(shù)字類型) String Boolean undefind null
存于棧內(nèi)存,先進(jìn)后出 賦值時(shí)到其他變量時(shí)其他變量copy數(shù)據(jù)另行開辟棧空間當(dāng)原始數(shù)據(jù)變化,被賦值的變量值不變當(dāng)原始數(shù)據(jù)被重新賦值將會(huì)另行開辟空間
(2).引用值
object arry function date RegExp
名稱存于棧,數(shù)據(jù)存于heap,但其中名稱指向棧賦值時(shí)到其他變量時(shí)其他變量在棧中開辟空間指向原始堆處不會(huì)另行開辟堆空間當(dāng)原始數(shù)據(jù)發(fā)生變化,被賦值的變量值會(huì)改變當(dāng)原始數(shù)據(jù)被重新賦值將會(huì)在棧和堆中開辟空間
var arr1 = [1, 2, 3, 4]; var arr2 = arr1; arr1.push(5); //此時(shí)arr2也是[1 2 3 4 5 ]
var arr1 = [1, 2, 3, 4]; var arr2 = arr1; arr1 = [1, 2]?? //此時(shí)arr2是[1 2 3 4 ] 與后面賦值的無關(guān)了
總結(jié)
以上是生活随笔為你收集整理的ECMAScript-1【发展史-ECMA-编程语言-变量-JS值】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。