JavaScript高級程序筆記

雙學神鎮(zhèn)筆記T痱稹!!

第一章 JavaScript誕生

為什么JavaScript會出現(xiàn)呢氓轰?

? ? ? 先看一下他出現(xiàn)的背景:1當時絕大多數(shù)因特網(wǎng)用戶上網(wǎng)速度僅僅為28.8kbit/s峰伙。2因表單驗證和服務(wù)器頻繁交互數(shù)據(jù),而加重了用戶負擔程帕。

第一章知識點:

1.JavaScript組成:

核心:ECMAScript住练,主要規(guī)定了JavaScript的語言基礎(chǔ);

DOM(文檔對象模型)愁拭,提供訪問和操作網(wǎng)頁內(nèi)容的方法和接口讲逛;

BOM(瀏覽器對象模型),提供了與瀏覽器交互的方式和接口岭埠;

2.五大主流瀏覽器:

IE盏混,F(xiàn)irefox,Safari惜论,chrome许赃,opera

3.API(application programming interface)應(yīng)用程序編程接口

(理解比較淺顯啊)是用來管理應(yīng)用程序間溝通的一些要求馆类。

舉個栗子:

? ? ?以Yelp的應(yīng)用為例混聊,當你搜索附近的餐館時,位置信息會出現(xiàn)在上乾巧,Yelp沒有開發(fā)自己的地圖句喜。通過Google地圖的API,Yelp應(yīng)用把自家的信息——餐飲地址沟于、用戶評價等——發(fā)送到內(nèi)部的Google地圖功能咳胃,最后得到一幅帶有周圍餐館位置的地圖展示給用戶,這些都顯示在Yelp應(yīng)用內(nèi)部社裆。(http://www.leiphone.com/news/201406/api.html ?這篇文章將的很詳細)

第二章 在HTML中使用JavaScript

2.1<script>元素

<script>元素的重要屬性:

async:異步腳本拙绊,先下腳本,但不妨礙其他操作泳秀,但是加載完就執(zhí)行标沪;

defer:延遲腳本,外部腳本在文檔完全解析后執(zhí)行嗜傅;

只有script的:遇到j(luò)s就下載金句,下完了執(zhí)行。(所以一般吧js文件放在body最后吕嘀,為的是讓html完全解析后违寞,再加載js)

直接上圖:

藍色線代表網(wǎng)絡(luò)讀取贞瞒,紅色線代表執(zhí)行時間,這倆都是針對腳本的趁曼;綠色線代表 HTML 解析军浆。

此圖告訴我們以下幾個要點:

deferasync在網(wǎng)絡(luò)讀取(下載)這塊兒是一樣的挡闰,都是異步的(相較于 HTML 解析)

它倆的差別在于腳本下載完之后何時執(zhí)行乒融,顯然defer(在html解析完成后執(zhí)行)是最接近我們對于應(yīng)用腳本加載和執(zhí)行的要求的,async則是一個亂序執(zhí)行的主摄悯,反正對它來說腳本的加載和執(zhí)行是緊緊挨著的赞季,所以不管你聲明的順序如何,只要它加載完了就會立刻執(zhí)行

內(nèi)部嵌入文件和外部文件:

內(nèi)部嵌入文件格式:

<script type="text/javascript"></script>

外部文件格式:

<script type="text/javascript" src="example.js" ></script>

<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>

文檔模式

<!DOCTYPE html>

文檔模式分類:

混雜模式(quirk mode)

標準模式(standard mode)

準標準迷失(almost standard mode)奢驯。

如果文檔開始未發(fā)現(xiàn)文檔類型說明申钩,則所有瀏覽器會開啟混雜模式。

<noscript>

當瀏覽器不支持腳本瘪阁,或者瀏覽器支持腳本但是腳本被禁時撒遣,用<noscript>可以讓頁面平穩(wěn)退化。

<noscript>

中間可以寫任何能出現(xiàn)在<body>中的html元素

<p>這是例子罗洗,本頁面需要瀏覽器支持(啟用)JavaScript</p>

</noscript>

第三章 基本概念

語法:

1.區(qū)分大小寫

2標識符(變量愉舔,函數(shù)名,屬性的名字伙菜,或者是函數(shù)的參數(shù)): ?

第一個字符必須是字母轩缤,下劃線或者美元符號,其他字符可以是字母贩绕,下劃線火的,美元符號和數(shù)字。

按照慣例淑倾,標識符用駝峰大小寫格式馏鹤,即第一個字母小寫,剩下每個單詞首字母大寫娇哆。

保留字湃累,關(guān)鍵字不能用做標識符

3注釋

// ? 單行注釋

/*

* ? ? 多行注釋

*/

順便來復(fù)習一下html和css注釋。

<!--html注釋 ?-->

/*css注釋*/

4嚴格模式

在腳本頂部添加"ues strict"編譯指示碍讨,來讓支持JavaScript的引擎切換到嚴格模式治力。

5語句

單行語句用分號結(jié)尾

代碼塊以({)開始,(})結(jié)束

6變量

局部變量:var message="hi"宵统,是作用域內(nèi)的局部變量痊班,比如函數(shù)中使用var定義一個變量废亭。變量 骂删,在退出函數(shù)后被銷

可以一條語句定義多個變量:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?var message="hi" , ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?age=29;

全局變量:message="hi"

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

五個基本數(shù)據(jù)類型(undefined,null芥被,boolean夏漱,number芳室,string)

+一個復(fù)雜數(shù)據(jù)類型Object堪侯。

用typeof操作符可以檢測變量數(shù)據(jù)類型。

1.undefined類型

只有一個值

在使用var聲明變量荔仁,但是未對他初始化時伍宦,變量值為undefined。

var age

alert(age) ? ?//產(chǎn)生錯誤

alert(typeof age)//"undefined"

2.Null類型

只有一個值乏梁,null

null表示一個空對象指針次洼,所以用typeof檢測null時,返回"object"

undefined是null的一個派生遇骑,所以alert(null==undefined) ? //true

只要想保存對象的變量還沒有真正保存對象卖毁,就應(yīng)該明確的讓該變量保存null值。

3.Boolean類型

有兩個值落萎,true和false亥啦;

JavaScript中的所以類型的值都有與這兩個值等價的值!

舉個栗子:

var message="hello world";

if(messae){

? ?alert("Value is true!")

}

message自動轉(zhuǎn)換為true

4.Number類型

分為整數(shù)和浮點數(shù)值(雙精度數(shù)值)练链;

整數(shù)可以用十進制翔脱,八進制,十六進制表示媒鼓,但最后都是被轉(zhuǎn)換為十進制届吁;

浮點數(shù)值,就是數(shù)值中包含一個小數(shù)點隶糕,且小數(shù)點后有至少一個值瓷产;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2016/2/3


科學計數(shù)法:3.125e7=31250000;3.125e-4=0.0003125枚驻;

如果數(shù)值超過JavaScript的數(shù)值范圍濒旦,則會自動轉(zhuǎn)換成Infinity值;確定一個數(shù)值是不是有窮可以用isFinite()函數(shù)再登。

NaN(Not a Number)特殊數(shù)值尔邓,表示一個本來要返回數(shù)值的操作數(shù)未返回數(shù)值的情況;特點:任何數(shù)除以0锉矢,返回NaN梯嗽;NaN與任何數(shù)都不相等,包括他本身沽损。isNaN()函數(shù)可以確定參數(shù)是否“不是數(shù)值”灯节。

數(shù)值轉(zhuǎn)換:

三個可以把非數(shù)值轉(zhuǎn)化數(shù)值的函數(shù)

Number()

parseInt(要轉(zhuǎn)換的值,進制參數(shù))更常用來處理整數(shù)。如果第一個字符不是數(shù)字或者符號炎疆,就返回NaN卡骂;如果是就繼續(xù)解析第二個字符,直到遇到非數(shù)字字符形入∪纾可以解析八進制和十六進制。小數(shù)點后面的會被忽略亿遂。

parseFloat()處理浮點數(shù)值浓若,第一個小數(shù)點后有效,第二個小數(shù)點無效蛇数。

string類型

字符串

有l(wèi)ength屬性挪钓,表示字符串長度

字符串值是不可改變的,如果改變某個變量保存的字符串耳舅,就要銷毀原來的字符串诵原,然后在用另一個包含新值的字符串填充該變量。

轉(zhuǎn)換為數(shù)值:

toString(),null和undefined沒有此方法挽放;

String(),值有toString()方法就用此方法蔓纠。值是null辑畦,返回"null",值是undefined腿倚,返回"undefined"

Object類型

對象是一組數(shù)據(jù)和功能的集合纯出;

用new操作符后跟要創(chuàng)建的對象類型的名稱來創(chuàng)建;

valueOf()敷燎,返回對象的字符串暂筝,數(shù)值或者布爾值表示;

操作符

一元操作符(只操作一個值得操作符)

1. ?++ 和--

前置型 var age=29 ; ++age; ? ? ? ? ?//30

后置型var age=29; age++; ? ? ? ? ? ?//30

區(qū)別:后置型操作符在包含他的語句被求值之后執(zhí)行硬贯;

eg:var num1=2;

? ? ? var num2=20;

? ? ? var num3=num1-- + num2; ? ? ? ? //22

? ? ? var num4=num1+num2; ? ? ? ? ? ? ?//21

2.一元加和減操作符

+

- 可以用來表示負數(shù)

非數(shù)值用+或-時焕襟,會先將值轉(zhuǎn)換為數(shù)值再進行計算

布爾操作符

邏輯非(!)

邏輯與(&&)

邏輯或(||)

乘性操作符

乘法*

除法/

加性操作符

加法+

減法-

關(guān)系操作符

大于>

小于<

大于等于>=

小于等于<=

相等操作符

相等(==)和不相等(饭豹!=)鸵赖,先轉(zhuǎn)換再比較

全等(===)和不全等(!==)拄衰,僅比較而不轉(zhuǎn)換

條件操作符

variable = boolean_expression ? true_value : false_value;

eg:var max=(num1>num2) ? num1 : num2;

如果num1大于num2(返回true)它褪,給max賦值為num1,反之關(guān)系式會返回false翘悉,給max賦值為num2.

賦值操作符

復(fù)合賦值

eg:var num=10; num+=10 ? //等于num=num+10

乘/賦值 ?*=

除/賦值 ?/=

模/賦值 ?%=

加/賦值 ?+=

減/賦值 ?-=

左移/賦值 ?<<=

有符號右移/賦值 ?>>=

無符號右移/賦值 ?>>>=

逗號操作符

逗號操作符可以讓一個語句中執(zhí)行多個操作:var num1=2,num2=3,num3=4;

可以用來賦值茫打,返回最后一項:var num=(1,2,3,4,5); ? ?//num值是5

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2016/2/4


























最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子老赤,更是在濱河造成了極大的恐慌轮洋,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诗越,死亡現(xiàn)場離奇詭異砖瞧,居然都是意外死亡,警方通過查閱死者的電腦和手機嚷狞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門块促,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人床未,你說我怎么就攤上這事竭翠。” “怎么了薇搁?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵斋扰,是天一觀的道長。 經(jīng)常有香客問我啃洋,道長传货,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任宏娄,我火速辦了婚禮问裕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘孵坚。我一直安慰自己粮宛,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布卖宠。 她就那樣靜靜地躺著巍杈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扛伍。 梳的紋絲不亂的頭發(fā)上筷畦,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音蜒秤,去河邊找鬼汁咏。 笑死,一個胖子當著我的面吹牛作媚,可吹牛的內(nèi)容都是我干的攘滩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼纸泡,長吁一口氣:“原來是場噩夢啊……” “哼漂问!你這毒婦竟也來了赖瞒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蚤假,失蹤者是張志新(化名)和其女友劉穎栏饮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體磷仰,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡袍嬉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了灶平。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伺通。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖逢享,靈堂內(nèi)的尸體忽然破棺而出罐监,到底是詐尸還是另有隱情,我是刑警寧澤瞒爬,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布弓柱,位于F島的核電站,受9級特大地震影響侧但,放射性物質(zhì)發(fā)生泄漏矢空。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一禀横、第九天 我趴在偏房一處隱蔽的房頂上張望妇多。 院中可真熱鬧,春花似錦燕侠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蜓耻,卻和暖如春茫舶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背刹淌。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工饶氏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人有勾。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓疹启,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蔼卡。 傳聞我的和親對象是個殘疾皇子喊崖,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

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