Day 01---初探JavaScript

一色徘、JavaScript概述

1.1 JavaScript是什么?

  1. JavaScript主要用于HTML的頁面,嵌入在HTML的源碼中操禀。
  2. JavaScript是因特網(wǎng)上最流行的腳本語言褂策,它存在于全世界所有 Web 瀏覽器中,能夠增強(qiáng)用戶與 Web 站點和 Web 應(yīng)用程序之間的交互颓屑。
  3. JS是弱類型語言,沒有類型聲明,它的變量不必具有一個明確的類型辙培。
  4. JS是腳本語言,換句話說邢锯,可以用來編程的并且直接執(zhí)行源代碼的語言,就是腳本語言扬蕊。
  5. JS也是解釋性的語言。何為解釋性語言?是在運行的時候?qū)⒊绦蛑苯臃g成機(jī)器的語言
  6. JavaScript是一種基于對象(Object)和事件驅(qū)動(Event Driven)并具有安全性能的腳本語言,可廣泛用于服務(wù)器丹擎、PC尾抑、筆記本電腦歇父、平板電腦和智能手機(jī)等設(shè)備。
  7. HTML5的出現(xiàn)更是突出了JavaScript的重要性再愈,例如HTML5的繪圖支持榜苫、本地存儲、離線應(yīng)用翎冲、客戶端通信等垂睬,都大量使用了JavaScript。

1.2 JavaScript歷史

  • 網(wǎng)景公司在上個世紀(jì)的1995年抗悍,憑借其Navigator瀏覽器驹饺,成為Web時代開啟時最著名的第一代互聯(lián)網(wǎng)公司。由于網(wǎng)景公司希望能在靜態(tài)HTML頁面上添加一些動態(tài)效果缴渊,于是叫Brendan Eich這哥們在設(shè)計出了JavaScript語言赏壹。
  • 為什么起名叫JavaScript?原因是當(dāng)時Java語言非常紅火衔沼,所以網(wǎng)景公司希望借Java的名氣來推廣蝌借,但事實上JavaScript除了語法上有點像Java,其他部分基本上沒啥關(guān)系指蚁。JavaScript

JavaScript因為互聯(lián)網(wǎng)而生菩佑,緊隨著瀏覽器的出現(xiàn)而問世∧回顧它的歷史稍坯,就要從瀏覽器的歷史講起。

  • 1990年底缘圈,歐洲核能研究組織(CERN)科學(xué)家Tim Berners-Lee(蒂姆 伯納斯-李),互聯(lián)網(wǎng)之父
  • 1992年底袜蚕,美國國家超級電腦應(yīng)用中心(NCSA)開始開發(fā)一個獨立的瀏覽器糟把,叫做Mosaic (馬賽克) 。
  • 1994年10月牲剃,NCSA的一個主要程序員MarcAndreessen(馬克 愛德森)聯(lián)合風(fēng)險投資家Jim Clark( 吉姆·克拉克)遣疯,成立了Mosaic通信公司(Mosaic Communications),不久后改名為網(wǎng)景Netscape凿傅。這家公司的方向缠犀,就是在Mosaic的基礎(chǔ)上,開發(fā)面向普通用戶的新一代的瀏覽器 Netscape Navigator聪舒。
  • 1994年12月辨液,Navigator發(fā)布了1.0版,市場份額一舉超過90%箱残。
  • 1995年滔迈,Netscape公司Brendan Eich開發(fā)這種網(wǎng)頁腳本語言止吁。1995年5月,Brendan Eich只用了10天燎悍,就設(shè)計完成了這種語言的第一版liveScript敬惦。它是一個大雜燴,語法有多個來源:
基本語法:借鑒C語言和Java語言谈山。
數(shù)據(jù)結(jié)構(gòu):借鑒Java語言俄删,包括將值分成原始值和對象兩大類。
函數(shù)的用法:借鑒Scheme語言和Awk語言奏路,將函數(shù)當(dāng)作第一等公民畴椰,并引入閉包。
原型繼承模型:借鑒Self語言(Smalltalk的一種變種)思劳。
正則表達(dá)式:借鑒Perl語言迅矛。
字符串和數(shù)組處理:借鑒Python語言。
  • 1995年12月4日潜叛,Netscape公司與Sun公司聯(lián)合發(fā)布了JavaScript語言秽褒。
  • 1996年3月,Navigator 2.0瀏覽器正式內(nèi)置了JavaScript腳本語言威兜。
  • 1996年8月销斟,微軟模仿JavaScript開發(fā)了一種相近的語言,取名為JScript(JavaScript是Netscape的注冊商標(biāo)椒舵,微軟不能用)蚂踊,首先內(nèi)置于IE 3.0。Netscape公司面臨喪失瀏覽器腳本語言的主導(dǎo)權(quán)的局面笔宿。
  • 1997年 IE4與nn4平分天下犁钟。網(wǎng)景公司將javaScript交給ECMA(European Computer Manufacturers Association)組織,以此來抵制微軟的壟斷泼橘。
  • 1998年 ECMAScript 2.0
  • 1999年 ECMAScript 3.0
  • 2008年 ECMAScript4.0應(yīng)為升級太大涝动,廢棄
  • 2009年 ECMASript5.0發(fā)布
  • 2011年ECMAscript 5.1版發(fā)布,并且成為ISO國際標(biāo)準(zhǔn)(ISO/IEC 16262:2011)炬灭。到了2012年底醋粟,所有主要瀏覽器都支持ECMAScript 5.1版的全部功能。
  • 2015年 ECMAScript6.0 改名為 ECMAScript2015

1.3 JavaScript主要特點

  1. 簡單性它是基于Java基本語句和控制流之上的簡單而緊湊的設(shè)計重归,但是相比Java來說米愿,它的變量類型是采用弱類型,未采用嚴(yán)格的數(shù)據(jù)類型鼻吮。

var

  1. 安全性: JS不允許訪問本地硬盤育苟,不能將數(shù)據(jù)存入到服務(wù)器上,不允許對網(wǎng)絡(luò)文檔進(jìn)行修改和刪除椎木,只能通過瀏覽器實現(xiàn)信息瀏覽或動態(tài)交互宙搬,從而有效的防止數(shù)據(jù)的丟失笨腥。
  1. 動態(tài)性: JS可以直接對用戶或客戶輸入做出響應(yīng),無須經(jīng)過Web程序勇垛。它對用戶的響應(yīng)采用以事件驅(qū)動的方式進(jìn)行脖母,即由某種操作動作引起相應(yīng)的事件響應(yīng),如:點擊鼠標(biāo)闲孤、移動窗口谆级、選擇菜單等。
  1. 跨平臺性: JS依賴于瀏覽器本身讼积,與操作環(huán)境無關(guān)肥照。只要能運行瀏覽器的計算機(jī),并安裝了支持JS的瀏覽器就可以正確執(zhí)行勤众,從而實現(xiàn)了“編寫一次舆绎,走遍天下”的夢想。

facebook reactNative 用js去寫android和ios


1.4 JavaScript理論體系

JavaScript主要有三部分組成:

  1. ECMAScript 他是JavaScript的核心们颜,描述了該語言的語法和基本對象吕朵。
  2. BOM(browerobject model 瀏覽器對象模型)。 描述了與瀏覽器進(jìn)行交互的方法和接口窥突。BOM提供了獨立于內(nèi)容而與瀏覽器窗口進(jìn)行交互的對象努溃,例如可以移動,調(diào)整瀏覽器大小的window對象阻问,可以用于導(dǎo)航的location對象與history對象梧税,可以獲取瀏覽器,操作系統(tǒng)與用戶屏幕信息的navigator與screen對象称近,可以使用document作為訪問HTML文檔的入口第队,管理框架的frames對象等。
  3. DOM(document object model 文檔對象模型)刨秆。 通過 DOM凳谦,可以訪問所有的 HTML 元素,連同它們所包含的文本和屬性坛善,可以對其中的內(nèi)容進(jìn)行修改和刪除晾蜘,同時也可以創(chuàng)建新的元素邻眷。

1.5 JavaScript工作原理


1.6 JavaScript常用開發(fā)工具

  1. 記事本
  2. EditPlus
  3. Notepad++
  4. HBuilder ide 集成開發(fā)環(huán)境 免費 不難用
  5. WebStrom 用的最多 idea基礎(chǔ) 收費
  6. Sublime emmet

二眠屎、使用JavaScript

2.1 在HTML中使用JavaScript

1、內(nèi)部添加: 可以在HTML頁面的任何地方添加script標(biāo)簽(只要瀏覽器可以讀取到)肆饶,在標(biāo)簽內(nèi)部添加我們的JS代碼改衩。例如:

<script type="text/javascript">
    //js代碼
</script>

說明:type屬性是必選屬性,用來指定腳本的類型驯镊。Type的值可選:text/javascript葫督、application/javascript竭鞍、text/vbscript、text/jscript橄镜、text/x-javascript偎快。
區(qū)別:
type="text/javascript",傳統(tǒng)的寫法洽胶,瀏覽器支持較好晒夹。
type="application/javascript",標(biāo)準(zhǔn)的寫法,但不是每種瀏覽器都支持姊氓。
type="text/x-javascript":x前綴表示這是實驗性的丐怯,不是標(biāo)準(zhǔn)的類型。 
其中x就是experiment的簡寫翔横,代表實驗階段读跷。
我們以后的代碼統(tǒng)一用:type="text/javascript"

2、 鏈接外部js文件禾唁。 為了代碼的復(fù)用和方便維護(hù)效览,實際開發(fā)中會把js代碼放入單獨的文件中,然后在HTML文件中用script標(biāo)簽鏈接引入蟀俊。例如:

<script type="text/javascript" src="a.js">
  //注意不要在script標(biāo)簽中再添加代碼钦铺,即使添加了代碼也不會執(zhí)行
</script>
說明:
A:src表示要鏈接的文件的地址。這個地址可以是一個文件肢预,也可以是一個url地址矛洞。
B:引入外部js文件的時候,不要再在標(biāo)簽內(nèi)添加js代碼烫映,即使添加了也不會執(zhí)行沼本。
C:雖然這個時候不再script標(biāo)簽中添加js代碼,但是也不能把script標(biāo)簽改成單標(biāo)簽锭沟。例如下面的形式是錯誤的抽兆。
<script type="text/javascript" src="a.js" /> <!-- 把script寫成這種但標(biāo)簽的方式是錯誤的 -->

3、**在HTML標(biāo)簽中: ** 作為某個元素的事件屬性值或者是超鏈接href屬性值族淮。

<a href="javascript:alert('育知同創(chuàng)歡迎你!')">點我啊</a>
<input name="btn" type="button" value="彈出消息框"  onclick="javascript:alert('育知同創(chuàng)歡迎你!');"/>

2.2 JavaScript語法基本要求

  1. JavaScript的執(zhí)行順序:按照HTML文件中出現(xiàn)的順序依次執(zhí)行
  2. JavaScript嚴(yán)格區(qū)分大小寫辫红,大小寫敏感 a A p P
  3. JavaScript忽略空白符和換行符
  4. JavaScript通過\ 對代碼進(jìn)行折行操作
  5. JavaScript使用 ; 結(jié)束語句。分號 ; 可以省略祝辣,盡量不要省略贴妻。
  6. JavaScript可以使用{ }括成一個語句組,形成一個塊block

2.3 JavaScript中幾個用于調(diào)試輸出的常用API

警告框:alert(xx);

  • 警告框經(jīng)常用于確保用戶可以得到某些信息蝙斜。

  • 警告框出現(xiàn)后名惩,用戶需要點擊確定按鈕才能繼續(xù)進(jìn)行操作。

    <script type="text/javascript" >
      alert("你好");
    </script>
    

確認(rèn)框:confirm(xx);

  • 確認(rèn)框用于使用戶可以驗證或者接受某些信息孕荠。
  • 當(dāng)確認(rèn)框出現(xiàn)后娩鹉,用戶需要點擊確定或者取消按鈕才能繼續(xù)進(jìn)行操作攻谁。
  • 如果用戶點擊確認(rèn),那么返回值為 true弯予。如果用戶點擊取消戚宦,那么返回值為 false。
<script type="text/javascript" >
  confirm("你好");
</script>

輸入框: prompt(xx,默認(rèn)值);

  • 提示框經(jīng)常用于提示用戶在進(jìn)入頁面前輸入某個值锈嫩。
  • 當(dāng)提示框出現(xiàn)后阁苞,用戶需要輸入某個值,然后點擊確認(rèn)或取消按鈕才能繼續(xù)操縱祠挫。
  • 如果用戶點擊確認(rèn)那槽,那么返回值為輸入的值。如果用戶點擊取消等舔,那么返回值為 null骚灸。


向控制臺輸出結(jié)果:console.log("xxx")

<script type="text/javascript" >
    console.log("正在向控制臺打印數(shù)據(jù): 哈哈哈");
</script>

直接寫入到HTML頁面中

2.4 JavaScript注釋

JavaScript共提供了2中注釋:單行注釋和多行注釋。

  1. 單行注釋慌植。 //這里是注釋甚牲,只能寫一行
  2. 多行注釋。 /* 這里的注釋可以寫多行 */

三蝶柿、關(guān)鍵字和保留字

1丈钙、關(guān)鍵字: 在js中具有特殊含義的單詞。 所有的關(guān)鍵字都是小寫字母

2交汤、保留字: 現(xiàn)在 js 還沒有使用雏赦,但是留著以后擴(kuò)展用。


四芙扎、標(biāo)識符

所謂 標(biāo)識符星岗,就是指變量、函數(shù)戒洼、屬性的名字俏橘,或者函數(shù)的參數(shù)名字。

規(guī)則:

  1. 第一個字母必須是字母圈浇、下劃線(_)寥掐、美元符號($)

  2. 其他字母可以是數(shù)字、字母磷蜀、下劃線和美元符號

  3. JavaScript是區(qū)分大小寫的召耘。即 a和A是完全兩個不同的標(biāo)示符。

  4. 不能是關(guān)鍵字和保留子蠕搜。

  5. 作為慣例怎茫,ECMAScript 標(biāo)識符采用駝峰大小寫格式收壕,也就是第一個字母小寫妓灌,剩下的每個單詞的首字母大寫轨蛤,

    例如:

firstSecond   myCar doSomethingImportant
注意:構(gòu)造函數(shù)的首字母一般使用大寫字母開頭。

1. 只用用數(shù)字虫埂、字母祥山、下劃線、$
2. 不能使用數(shù)字開頭
3. 區(qū)分大小寫
4. 不能用關(guān)鍵字
5. 駝峰命名法

五掉伏、變量

5.1 概念

JavaScript的變量用于保存值或表達(dá)式 缝呕,顧名思義,變量就是它的值是可以改變。

5.2 聲明變量

? JavaScript中變量是弱類型或者松散類型斧散,所謂松散類型是指在同一個變量中可以存儲任何類型的數(shù)據(jù)供常。換句話說,一個變量僅僅是一個占位符而已鸡捐,為了后面的代碼訪問比較方便栈暇。

? JavaScript的變量聲明統(tǒng)一用var關(guān)鍵字來聲明。例如:

var num; //聲明了一個變量箍镜,這個變量的名字叫num源祈。

5.3 給變量賦值

var num;
num = 5;  //把數(shù)字5賦值給變量num。  注意:這里的 = 不是等色迂,應(yīng)該這樣讀:把5賦值給變量num香缺,不應(yīng)該讀做num等5。

5.4 聲明變量的同時進(jìn)行賦值

var num = 5; //聲明一個變量num歇僧,同時給這個變量賦值為5图张。

5.5 聲明變量的一些注意點

同一個變量,可以聲明多次诈悍,而且后面的聲明也不會讓前面已經(jīng)賦的值丟失埂淮。例如:

var num = 10;
var num; //重寫定義傅寡,沒有任何的副作用巷燥,不會導(dǎo)致前面的值丟失。
alert(num);  //彈出:10
num = 20; //把變量num的值再次賦值為20谜诫,則會覆蓋原來的值慕趴。這是變量最大的特點:變
alert(num);  //所以此處彈出20

可以在同一行同時聲明多個變量痪蝇,即: 使用一個var聲明多個變量,這多個變量之間用逗號(英文下 , )隔開冕房。當(dāng)然聲明的時候可以根據(jù)需要對變量進(jìn)行賦值初始化躏啰。例如:

var num1, num2, mun3 = 40, num4; //使用var關(guān)鍵字同時聲明4個變量,而且num3的值初始化為40给僵。

5.5 變量的命名規(guī)范

同前面介紹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帝际,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蹲诀,更是在濱河造成了極大的恐慌,老刑警劉巖脯爪,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痕慢,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)掖举,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拇泛,“玉大人,你說我怎么就攤上這事俺叭。” “怎么了熄守?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長裕照。 經(jīng)常有香客問我,道長晋南,這世上最難降的妖魔是什么惠猿? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮负间,結(jié)果婚禮上偶妖,老公的妹妹穿的比我還像新娘。我一直安慰自己政溃,他們只是感情好趾访,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著董虱,像睡著了一般扼鞋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天云头,我揣著相機(jī)與錄音捐友,去河邊找鬼。 笑死盘寡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的撮慨。 我是一名探鬼主播竿痰,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼砌溺!你這毒婦竟也來了影涉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤规伐,失蹤者是張志新(化名)和其女友劉穎蟹倾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猖闪,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡鲜棠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了培慌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豁陆。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吵护,靈堂內(nèi)的尸體忽然破棺而出盒音,到底是詐尸還是另有隱情,我是刑警寧澤馅而,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布祥诽,位于F島的核電站,受9級特大地震影響瓮恭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屯蹦,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一笨农、第九天 我趴在偏房一處隱蔽的房頂上張望帖渠。 院中可真熱鬧,春花似錦份招、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽励背。三九已至砸西,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衅疙,已是汗流浹背鸳慈。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工蝶涩, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嗽上。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓兽愤,卻偏偏與公主長得像浅萧,于是被迫代替她去往敵國和親哲思。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容