JavaScript基礎

一個頁面分成三個部分倦畅,結構驰弄,樣式麻汰,行為。

HTML代表了頁面的結構(骨架)戚篙,CSS代表了頁面的樣式(皮膚)五鲫,JavaScript代表了頁面的行為(這種行為是被動的)。主動的行為需要一個大腦岔擂,后端作為我們的大腦替我們分析執(zhí)行數(shù)據(jù)位喂,執(zhí)行行為,我們和大腦之間的聯(lián)系AJAX(中樞神經(jīng))乱灵。

Paste_Image.png

1.JavaScript是什么塑崖,它能做什么?

對頁面進行渲染痛倚,讓頁面有行為规婆。讓頁面動起來;

Paste_Image.png

JavaScript簡史

JavaScript在設計之初只是為了做表單驗證的蝉稳。但是現(xiàn)如今抒蚜,JavaScript已經(jīng)成為了一門功能全面的變成語言,已經(jīng)是WEB中不可或缺的一部分耘戚,如今的JavaScript是一門既簡單又復雜的語言嗡髓,說它簡單是因為學會它,幾乎只要一個小時就可以了收津。但是如果你想要真正掌握它饿这,需要幾年的時間浊伙。

JavaScript發(fā)展

NetScape公司在1995年著手開發(fā)一種名為liveScript的腳本語言, 為了營銷目的搭上當時媒體熱炒的Java順風車蛹稍,臨時更名liveScript為JavaScript吧黄。其實JavaScript和Java沒有一點關系。JavaScript1.0獲得巨大成功唆姐。

NetScape公司趁熱打鐵繼續(xù)發(fā)布JavaScript1.1版本拗慨,使得Web獲得更高的關注,同時奠定了自己在瀏覽器界的霸主地位奉芦。

如果事情一直這樣下去那么NetScape可能依舊使我們現(xiàn)代瀏覽器的霸主赵抢,可是在1996年互聯(lián)網(wǎng)巨頭微軟公司進入瀏覽器領域,推出JScript声功,和NetScape公司開始爭奪霸主地位烦却。

Paste_Image.png

最讓人擔心的問題也因此出現(xiàn)了,當時的JavaScript和JScript是完全不同的兩個版本先巴,這門語言沒有一個標準存在其爵,業(yè)內(nèi)的擔心(吐槽)日益加劇。終于伸蚯,多方聯(lián)合共同制定了一個標準摩渺,這個標準也就是ECMAScrip,ECMAScript作為各自JavaScript實現(xiàn)的基礎剂邮。雖然制定標準只花費了幾個月摇幻,但是這幾個月卻對未來20年的JavaScript發(fā)展起到了不可或缺的作用。

瀏覽器的發(fā)展經(jīng)歷了無數(shù)的坎坷挥萌,各個瀏覽器發(fā)現(xiàn)這塊巨大的蛋糕后誰都不愿放棄绰姻,于是激烈的廝殺開始了。

第一次瀏覽器大戰(zhàn):

原始時期引瀑,微軟發(fā)布了IE瀏覽器狂芋,和網(wǎng)景netSpace navigator大打出手,最后網(wǎng)景失敗憨栽,將公司賣給AOL银酗,核心團隊全部離職,第一回合徒像,微軟獲勝,netSpace昔日霸主隕落蛙讥。

Paste_Image.png

但是NetScape并沒有放棄锯蛀,在1998年公開源碼并重新命名為 Mozilla,并重寫全部程序次慢,在2002年發(fā)布了第一個瀏覽器版本旁涤,firefox登場翔曲。在2004年已經(jīng)開始叫板IE瀏覽器,iE推出IE7與之抗衡劈愚,拉開了第二次瀏覽器大戰(zhàn)的序幕瞳遍。

第二次瀏覽器大戰(zhàn):

第二次瀏覽器大戰(zhàn)不再是IE和FF的兩家之爭,在現(xiàn)代瀏覽器群雄并起菌羽,同時挪威的 Opera 掠械,幾乎所有的智能手機配備的都是這個瀏覽器,擁有全世界最快V8引擎的Chrom,以及蘋果公司的Safari注祖,全部加入瀏覽器爭奪猾蒂。至今戰(zhàn)爭還在進行,但是對于瀏覽器大戰(zhàn)我們看到的結果大多是推進了瀏覽器的發(fā)展是晨,為更好的用戶體驗做出了非常積極的貢獻肚菠。

Paste_Image.png

JavaScript的組成
ECMAScript 、BOM 罩缴、DOM蚊逢;

ECMAScript:這是一個標準,它規(guī)定了語法箫章、類型烙荷、語句、關鍵字炉抒、保留字奢讨、操作符、對象焰薄。(相當于法律 )

Paste_Image.png

BOM(瀏覽器對象模型):可以訪問瀏覽器窗口的的瀏覽器對象模型拿诸,對瀏覽器窗口進行操作。

Paste_Image.png

DOM(文檔對象模型):DOM把整個頁面映射為一個多層節(jié)點結構塞茅。HTML頁面組成都是某種類型 的節(jié)點亩码,這些節(jié)點又包含著不同類型的數(shù)據(jù)。

Paste_Image.png

如何寫JavaScript程序野瘦?

script標簽使用

<script></script> 

 src :  外聯(lián)script 標簽(立即調(diào)用,不能在該標簽內(nèi)寫代碼)
 
 <script>
     
      //在標簽內(nèi)書寫內(nèi)容     
 
 </script>

 <script  src='javascript.js'>// 這里面不能寫任何內(nèi)容</script>

一切準備就緒描沟,讓我們從Hello Word開始吧。

 document.write的使用 >>>> HelloWord    >>>  原樣輸出標簽鞭光。
 
 注釋 (一份好的代碼吏廉,要有三分之二的注釋)

 單行注釋: // 要注釋的內(nèi)容。

 多行注釋:/* 注釋的內(nèi)容寫在這里 */ 

 原樣輸出標簽內(nèi)容

如果我想在頁面中打印出:<strong>標簽怎么辦惰许?

如果按照正常的打印方式進行打印席覆,毫無疑問,標簽會被瀏覽器解析汹买。當我們要打印標簽的時候要對對標簽進行轉義佩伤。

 &lt  代表 < 

 &gt 代表 >

 document.write('<strong>強大的</strong>');

變量(別稱)
Paste_Image.png

他叫翠花聊倔,他是一只熊。
熊的底層是什么那生巡? 熊皮耙蔑、熊掌、熊骨....孤荣, 那我們每次呼叫這只熊的時候都要叫她什么甸陌?有一張熊皮,500公斤熊肉垃环,第三塊小腳趾骨斷過的邀层,那個玩意?
不遂庄!我們叫她翠花寥院!這就是這只熊的別稱!放在計算機里涛目,這就是把這只熊塞入了一個叫做翠花的變量里秸谢。

怎么聲明一個變量那?

關鍵字 var 變量名 a = '<strong>強壯的</strong>'

var 聲明變量的底層原理:我們所寫的程序運行在內(nèi)存中霹肝,當我們使用關鍵字var 聲明一個變量的時候估蹄,計算機會從內(nèi)存中留出一定儲存空間,為我們存放不同類型的內(nèi)容沫换。

分清左右兩側的意義:

 JavaScript中的 ‘’=‘’ 和我們數(shù)學中的 ‘’ = ‘’不一樣臭蚁,在JavaScript中‘’=‘’的作用是賦值(取別稱)。 
   
 var a = '<strong></strong>';  這句話分成兩個部分讯赏。

 左值:在等號左側垮兑,是變量名(同時被賦值)
 
 右值 :在等號右側,是存放進變量中的東西(給變量賦值)

變量的類型(因為存放進變量中的數(shù)據(jù)是放在內(nèi)存中的漱挎,計算機只識別0系枪,1,所以需要對不同類型的數(shù)據(jù)進行轉義磕谅,轉義的結果會導致所需空間不同私爷,所以JavaScript中分成很多種數(shù)據(jù)類型,以便計算機儲存時使用)

 數(shù)字類型(number):1234567890

 字符類型(string):'123456','字符串類型',.....(有單引號或者雙引號)

 未定義類型(undefined):這是一種特殊類型膊夹,當變量被聲明但是沒有被賦值的時候衬浑,那么該變量的類型為undefined;

 布爾值類型:true放刨,false嚎卫;

 對象類型:object;

怎樣直觀地區(qū)分不同的數(shù)據(jù)類型那?

 一個關鍵字 typeof
 
 變量使用小技巧: 聲明一串變量:var a=1,b=2,c=3;(不推薦初學者使用這樣的變量聲明方式拓诸,因為這樣的變量聲明方式會導致注釋不明確。)

 變量命名規(guī)范:(匈牙利命名法:駝峰命名法)

為什么要存在命名規(guī)范那麻昼?

 你的代碼并不是只有你一個人看奠支,變量既然是別稱,那么別稱就要有特殊的含義:
 舉個栗子:翠花抚芦,我們能從這個名字中得到什么信息那倍谜?
(這個名字的主人性別應該是女的,家中父母的一個美好愿景)叉抡;

我們從這些名字中能夠讀出很多的含義尔崔,是因為我們的語言常識,同樣褥民,變量也有一套類似的標準季春,代表了各種各樣的含義,這些含義如下:

Paste_Image.png

第二個規(guī)則:

開頭必須為字母或者$ 或 _

想要用break作為變量可不可以那消返?

關鍵字:

這些關鍵字用于執(zhí)行特定操作等载弄。按照規(guī)則,關鍵字也是語言保留的撵颊,不能用作標識符宇攻。

Paste_Image.png

保留字:未來可能作為,標識符存在倡勇。

Paste_Image.png

alert()方法

alert()使用 逞刷。 停止瀏覽器加載代碼。

瀏覽器解析代碼順序妻熊。(從上到下夸浅,從左到右);

邏輯運算符:

 var a=1,b=2;

a+b=3 

a - b=-1 

a * b=2

a / b=0.5

 a % b=1


    var  a='1', b='2';

                      a * b=2 ;

    a / b=0.5;

    a - b=-1;

    a + b =???

不同:和我們概念里的邏輯運算符很多都是不一樣的固耘。

  • = == === 這些都不一樣题篷。

避免問題出現(xiàn)(一眼就看出來了):

讓計算機告訴我:typeof 關鍵字;(數(shù)據(jù)類型的檢測厅目,意義在于確認是否能夠被使用)番枚;

編程習慣:分號,雖然不加分號在JavaScript語法上沒有問題损敷,但是建議不要省略分號葫笼,加了分號之后可以用軟件壓縮。良好的變成習慣(JavaScript權威指南)上的理由拗馒。

浮點數(shù):

你的電腦做著正確的二進制浮點運算路星,但問題是你輸入的是十進制的數(shù),電腦以二進制運算,這兩者并不是總是轉化那么好的洋丐,有時候會得到正確的結果呈昔,但有時候就不那么幸運了;

alert(0.7+0.1); //輸出0.7999999999999999

類型轉換:alert(0.6+0.2); //輸出0.8友绝;

       var a=3,b='10',c=true;

    alert(a+b);

    alert(b+c);

    alert(a+c);

運算結果好像并不是我們想要的:應該怎么辦那堤尾?當我們想做數(shù)學運算的時候,應該先對所有的數(shù)據(jù)類型進行統(tǒng)一(統(tǒng)一成數(shù)字格式)迁客,這時候我們就該用到數(shù)據(jù)類型的轉換郭宝。

 數(shù)據(jù)類型轉換方法:

 parseInt();

 parseFloat();

我們嘗試一下數(shù)據(jù)轉換的結果:

認識NaN:他是一種特殊的Number類型結果掷漱,代表意外轉換的數(shù)字粘室,NaN和任何東西都是不等的。

關于浮點數(shù):Math.round()四舍五入取整浮點數(shù)卜范。

賦值操作:(JavaScript中存在非常多的簡寫)

  var a=1;

  a=a+1;

  a+=1;

  alert(a)

這些當然還包括 -= 衔统、*=、/=先朦、%=

這些賦值操作符的結果都是什么缰冤?

一個更簡便的寫法 a++ ; a - -;
本文作者祈澈姑娘喳魏,轉載請標明作者和文章出處棉浸,創(chuàng)作不易。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刺彩,一起剝皮案震驚了整個濱河市迷郑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌创倔,老刑警劉巖嗡害,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異畦攘,居然都是意外死亡霸妹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門知押,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叹螟,“玉大人,你說我怎么就攤上這事台盯“照溃” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵静盅,是天一觀的道長良价。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么明垢? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任蚣常,我火速辦了婚禮,結果婚禮上袖外,老公的妹妹穿的比我還像新娘史隆。我一直安慰自己,他們只是感情好曼验,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著粘姜,像睡著了一般鬓照。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上孤紧,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天豺裆,我揣著相機與錄音,去河邊找鬼号显。 笑死臭猜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的押蚤。 我是一名探鬼主播蔑歌,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼揽碘!你這毒婦竟也來了次屠?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤雳刺,失蹤者是張志新(化名)和其女友劉穎劫灶,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掖桦,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡本昏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了枪汪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涌穆。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖料饥,靈堂內(nèi)的尸體忽然破棺而出蒲犬,到底是詐尸還是另有隱情,我是刑警寧澤岸啡,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布原叮,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏奋隶。R本人自食惡果不足惜擂送,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唯欣。 院中可真熱鬧嘹吨,春花似錦、人聲如沸境氢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萍聊。三九已至问芬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寿桨,已是汗流浹背此衅。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留亭螟,地道東北人挡鞍。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像预烙,于是被迫代替她去往敵國和親墨微。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

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

  • 轉載請聲明出處 博客原文 隨手翻閱以前的學習筆記默伍,順便整理一下放在這里欢嘿,方便自己復習,也希望你有也有幫助吧 第一課...
    程序員poetry閱讀 12,676評論 13 94
  • JavaScript 來了 1995年也糊,誕生了JavaScript語言炼蹦,那一年,我剛剛從大學畢業(yè)狸剃。在今年RedMo...
    abel_cao閱讀 1,993評論 2 54
  • 每天一句:沒有方向感钞馁,我們不知道自己走向哪里虑省。沒有方向感,我們所有的努力就缺乏一個標準僧凰,我們每時每刻所有的努力都處...
    EndEvent閱讀 642評論 0 2
  • JavaScirpt變量 JavaScript 變量名稱的規(guī)則: 應該起一些具有意義的探颈,描述性的,讓人望文生義的變...
    zyh9212閱讀 363評論 0 0
  • 1.HTML DOM (Document Object Model) document.getElementByI...
    廖馬兒閱讀 1,426評論 0 17