javascript 20170628自學總結

JavaScript歷史

要了解JavaScript,我們首先要回顧一下JavaScript的誕生。

在上個世紀的1995年,當時的網(wǎng)景公司正憑借其Navigator瀏覽器成為Web時代開啟時最著名的第一代互聯(lián)網(wǎng)公司。

由于網(wǎng)景公司希望能在靜態(tài)HTML頁面上添加一些動態(tài)效果,于是叫Brendan Eich這哥們在兩周之內(nèi)設計出了JavaScript語言。你沒看錯,這哥們只用了10天時間。

為什么起名叫JavaScript?原因是當時Java語言非常紅火,所以網(wǎng)景公司希望借Java的名氣來推廣,但事實上JavaScript除了語法上有點像Java,其他部分基本上沒啥關系。

ECMAScript

因為網(wǎng)景開發(fā)了JavaScript,一年后微軟又模仿JavaScript開發(fā)了JScript,為了讓JavaScript成為全球標準,幾個公司聯(lián)合ECMA(European Computer Manufacturers Association)組織定制了JavaScript語言的標準,被稱為ECMAScript標準。

所以簡單說來就是,ECMAScript是一種語言標準,而JavaScript是網(wǎng)景公司對ECMAScript標準的一種實現(xiàn)。

那為什么不直接把JavaScript定為標準呢?因為JavaScript是網(wǎng)景的注冊商標。

不過大多數(shù)時候,我們還是用JavaScript這個詞。如果你遇到ECMAScript這個詞,簡單把它替換為JavaScript就行了。

JavaScript版本

JavaScript語言是在10天時間內(nèi)設計出來的,雖然語言的設計者水平非常NB,但誰也架不住“時間緊,任務重”,所以,JavaScript有很多設計缺陷,我們后面會慢慢講到。

此外,由于JavaScript的標準——ECMAScript在不斷發(fā)展,最新版ECMAScript 6標準(簡稱ES6)已經(jīng)在2015年6月正式發(fā)布了,所以,講到JavaScript的版本,實際上就是說它實現(xiàn)了ECMAScript標準的哪個版本。

由于瀏覽器在發(fā)布時就確定了JavaScript的版本,加上很多用戶還在使用IE6這種古老的瀏覽器,這就導致你在寫JavaScript的時候,要照顧一下老用戶,不能一上來就用最新的ES6標準寫,否則,老用戶的瀏覽器是無法運行新版本的JavaScript代碼的。

不過,JavaScript的核心語法并沒有多大變化。我們的教程會先講JavaScript最核心的用法,然后,針對ES6講解新增特性。

  1. 使用javaScript能做什么?
    數(shù)據(jù)可視化
    移動端應用: Cordova
    服務端:Node.js
    桌面應用: NW.js 和 Electron
    游戲
    VR
    AR
    硬件
    物聯(lián)網(wǎng)

  2. javaScript語言特點?
    JavaScript是一門動態(tài)的,弱類型,基于原型的腳本語言。在JavaScript中“一切皆對象”,在這一方面,它比其他的OO語言來的更為徹底,即使作為代碼本身載體的function,也是對象,數(shù)據(jù)與代碼的界限在JavaScript中已經(jīng)相當模糊。雖然它被廣泛的應用在WEB客戶端,但是其應用范圍遠遠未局限于此。下面就這幾個特點分別介紹:
    動態(tài)性
    動態(tài)性是指,在一個Javascript對象中,要為一個屬性賦值,我們不必事先創(chuàng)建一個字段,只需要在使用的時候做賦值操作即可,如下例:
    //定義一個對象
    var obj = new Object();
    //動態(tài)創(chuàng)建屬性name
    obj.name = "an object";
    //動態(tài)創(chuàng)建屬性sayHi
    obj.sayHi = function(){
    return "Hi";
    }
    obj.sayHi();

假如我們使用Java語言,代碼可能會是這樣:
class Obj{
String name;
Function sayHi;
public Obj(Sting name, Function sayHi){
this.name = name;
this.sayHi = sayHi;
}
}
Obj obj = new Obj("an object", new Function());

弱類型

與Java,C/C++不同,Javascript是弱類型的,它的數(shù)據(jù)類型無需在聲明時指定,解釋器會根據(jù)上下文對變量進行實例化,比如:
//定義一個變量s,并賦值為字符串
var s = "text";
print(s);
//賦值s為整型
s = 12+5;
print(s);
//賦值s為浮點型
s = 6.3;
print(s);
//賦值s為一個對象
s = new Object();
s.name = "object";
print(s.name);

結果為:
text
17
6.3
Object

可見,Javascript的變量更像是一個容器,類似與Java語言中的頂層對象Object,它可以是任何類型,解釋器會根據(jù)上下文自動對其造型。
弱類型的好處在于,一個變量可以很大程度的進行復用,比如String類型的name字段,在被使用后,可以賦值為另一個Number型的對象,而無需重新創(chuàng)建一個新的變量。不過,弱類型也有其不利的一面,比如在開發(fā)面向對象的Javascript的時候,沒有類型的判斷將會是比較麻煩的問題,不過我們可以通過別的途徑來解決此問題。
解釋與編譯
通常來說,Javascript是一門解釋型的語言,特別是在瀏覽器中的Javascript,所有的主流瀏覽器都將Javascript作為一個解釋型的腳本來進行解析,然而,這并非定則,在Java版的Javascript解釋器rhino中,腳本是可以被編譯為Java字節(jié)碼的。
解釋型的語言有一定的好處,即可以隨時修改代碼,無需編譯,刷新頁面即可重新解釋,可以實時看到程序的結果,但是由于每一次都需要解釋,程序的開銷較大;而編譯型的語言則僅需要編譯一次,每次都運行編譯過的代碼即可,但是又喪失了動態(tài)性。

  1. javaScript的學習階段?
    基礎語法結構
    頁面瀏覽器操作
    深入學習---數(shù)據(jù)交互、組件實現(xiàn)、框架使用等

javaScript出現(xiàn)的位置
行間
<input type="button" onclick="alert(1);" value="Click" />

優(yōu)點:直接,簡單明了
缺點:可讀性差,不易維護,不易擴展

內(nèi)嵌
<script>
alert(1)
</script>
優(yōu)點: js和html分離,可以復用代碼
缺點:代碼不能多文件使用

外鏈js文件
<script src="demo.js"></script>
優(yōu)點:多文件共用

js變量
我們?yōu)榱藚^(qū)分盒子,可以用BOX1,BOX2等名稱代表不同盒子,BOX1就是盒子的名字(也就是變量的名字)。


我們趕快給變量取個好名字吧!變量名字可以任意取,只不過取名字要遵循一些規(guī)則:
1.必須以字母、下劃線或美元符號開頭,后面可以跟字母、下劃線、美元符號和數(shù)字。如下:
正確: mysum mychar $numa1
錯誤: 6num //開頭不能用數(shù)字 %sum //開頭不能用除(
$)外特殊符號,如(% + /等) sum+num //開頭中間不能使用除(_ $)外特殊符號,如(% + /等)
2.變量名區(qū)分大小寫,如:A與a是兩個不同變量。
3.不允許使用[JavaScript]關鍵字和保留字做變量名。

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

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

  • ECMAScript關鍵字 delete do else finally function in instance...
    doudou2閱讀 766評論 0 0
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,675評論 0 4
  • 《裕語言》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 28,737評論 5 20
  • 前言 MyBatis,曾經(jīng)給我的感覺是一個很神奇的東西,我們只需要按照規(guī)范寫好XXXMapper.xml以及XXX...
    張豐哲閱讀 12,375評論 15 67
  • 妻子兄妹四人,作為八零后的我們這一“盛況”可謂是鳳毛麟角。探其原由老丈人一門心思的為了中國千百年傳統(tǒng)的思想那就是“...
    追夢CEO閱讀 334評論 0 2

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