01、JavaScript-基礎(chǔ)

每天一句:沒有方向感辫红,我們不知道自己走向哪里贴妻。沒有方向感名惩,我們所有的努力就缺乏一個(gè)標(biāo)準(zhǔn)娩鹉,我們每時(shí)每刻所有的努力都處在一種混沌與盲目的狀態(tài)之中:沒有對(duì)錯(cuò)、沒有進(jìn)退巢株、沒有成敗得失。


一困檩、JavaScript起源

JavaScript誕生于1995年悼沿,它當(dāng)時(shí)的目的是為了表單輸入的驗(yàn)證糟趾。因?yàn)樵贘avaScript問世之前义郑,表單的驗(yàn)證都是通過服務(wù)器端驗(yàn)證非驮。而當(dāng)時(shí)都是電話撥號(hào)上網(wǎng)年代,服務(wù)器驗(yàn)證數(shù)據(jù)是一件非常痛苦的事情芙扎。

二星岗、什么是JavaScript

JavaScript是一種具有面向?qū)ο竽芰Α⒔忉屝偷某绦蛟O(shè)計(jì)語言戒洼。更具體一點(diǎn)俏橘,它是基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語言。因?yàn)樗恍枰谡Z言環(huán)境下運(yùn)行圈浇,而只需要支持它的瀏覽器即可寥掐。主要目的是,驗(yàn)證發(fā)往服務(wù)器端的數(shù)據(jù)汉额、增加web互動(dòng)曹仗、加強(qiáng)用戶體驗(yàn)度等蠕搜。
【JavaScript與Java怎茫,就像是雷鋒塔與雷鋒,兩者之間并沒有任何關(guān)系】

三妓灌、JavaScript歷史

  • 誕生
    1995年轨蛤,當(dāng)時(shí)工作在Netscape(網(wǎng)景)公司的布蘭登為解決類似于“向服務(wù)器提交數(shù)據(jù)之前驗(yàn)證”的問題。在Netscape Navigator2.0與Sun公司聯(lián)手開發(fā)一個(gè)稱之為LiveScript的腳本語言虫埂。為了營銷便利祥山,之后更名為JavaScript。

  • 邪惡的后來者
    因?yàn)镴avaScript1.0如此成功掉伏,所以微軟也決定進(jìn)軍瀏覽器缝呕,發(fā)布了IE3.0并搭載了一個(gè)JavaScript的克隆版,叫做JScript斧散。

  • 標(biāo)準(zhǔn)的重要
    在微軟進(jìn)入后供常,有3種不同的JavaScript版本同時(shí)存在: Netscape Navigator3.0中的JavaScript、IE中的JScript鸡捐、CEnvi中的ScriptEase栈暇。與其他編程語言不同的是,JavaScript并沒有一個(gè)標(biāo)準(zhǔn)來統(tǒng)一其語法或特性箍镜,而這3種不同的版本恰恰突出了這個(gè)問題源祈,隨著業(yè)界擔(dān)心的增加,這個(gè)語言標(biāo)準(zhǔn)化顯然已經(jīng)勢(shì)在必行色迂。

  • ECMA
    1997年香缺,JavaScript1.1作為一個(gè)草案提交給歐洲計(jì)算機(jī)制造協(xié)會(huì)(ECMA)。第39技術(shù)委員會(huì)(TC39)被委派來“標(biāo)準(zhǔn)化一個(gè)通用歇僧、跨平臺(tái)赫悄、中立于廠商的腳本語言的語法和語義”。由于自Netscape、Sun埂淮、微軟姑隅、Borland和其他一些對(duì)腳本編程感興趣的公司的程序員組成的TC39錘煉出了ECMA-262,該標(biāo)準(zhǔn)定義了叫做ECMAScript的全新腳本語言倔撞。

  • 靈敏的微軟讲仰、遲鈍的網(wǎng)景
    雖然網(wǎng)景開發(fā)了JavaScript并首先提交給ECMA標(biāo)準(zhǔn)化,但因計(jì)劃改寫整個(gè)瀏覽器引擎的緣故痪蝇,網(wǎng)景玩了整整一年才推出“完全遵守ECMA規(guī)范”的JavaScript1.3鄙陡。而微軟早在一年前就推出了“完全遵守ECMA規(guī)范”的IE4.0。這導(dǎo)致一個(gè)直接惡果:JScript稱為JavaScript語言的事實(shí)標(biāo)準(zhǔn)躏啰。

  • 山寨打敗原創(chuàng)
    JScript成為JavaScript語言的事實(shí)標(biāo)準(zhǔn)趁矾,加上window綁定著IE瀏覽器,幾乎占據(jù)全部市場(chǎng)份額给僵,因此毫捣,1999年之后,所有的網(wǎng)頁都是基于JScript來開發(fā)的帝际。而JavaScript1.x編程可憐的兼容者蔓同。

  • 網(wǎng)景的沒落與火狐的崛起
    網(wǎng)景在微軟強(qiáng)大的攻勢(shì)下,1998年全面潰敗蹲诀。但斑粱,星星之火可以燎原,同年成立Mozilla項(xiàng)目中Firefox(火狐瀏覽器)在支持JavaScript方面無可比擬脯爪,在后來的時(shí)間里一步步蠶食IE的市場(chǎng)则北,稱為全球第二大瀏覽器。

  • 谷歌的野心
    谷歌瀏覽器痕慢,是一個(gè)由谷歌公司開發(fā)的開放原始碼網(wǎng)頁瀏覽器咒锻。以簡(jiǎn)潔的頁面,極速的瀏覽守屉,一舉成為全球第三大瀏覽器。隨著移動(dòng)互聯(lián)網(wǎng)的普及蒿辙,嵌有Android系統(tǒng)的平板電腦和智能手機(jī)拇泛,在瀏覽器這塊將大有作為。

  • 蘋果的戰(zhàn)略
    Safari瀏覽器是蘋果公司各種產(chǎn)品的默認(rèn)瀏覽器思灌,在蘋果的一體機(jī)(iMac)俺叭、筆記本(Mac)、MP4(ipod)泰偿、智能手機(jī)(iPhone)熄守、平板(iPad),并且在windows和Linux平臺(tái)都有相應(yīng)版本。目前市場(chǎng)份額全球第四裕照,但隨著蘋果的產(chǎn)品不斷的深入人心攒发,具有稱霸之勢(shì)。

  • 幸存者
    Opera的全球市場(chǎng)份額第五晋南,2%左右惠猿。它的背后沒有財(cái)力雄厚的大公司,但它從“瀏覽器大戰(zhàn)”存活下來的负间,有著非常大的潛力偶妖。

四、JavaScript核心

雖然JavaScript和ECMAScript通常被人們用來表達(dá)相同的含義政溃,但JavaScript的含義卻比ECMA-262中規(guī)定的要多得多趾访。一個(gè)完整的JavaScript應(yīng)該由三個(gè)不同的部分組成: 核心(ECMAScript)、文檔對(duì)象模型(DOM)董虱、瀏覽器對(duì)象模型(BOM)扼鞋。

  • ECMAScript介紹
    由ECMAScript-262定義的ECMAScript與WEB瀏覽器的沒有依賴關(guān)系。ECMAScript定義的只是這門語言的基礎(chǔ)空扎,而在此基礎(chǔ)之上可以構(gòu)建更完善的腳本語言藏鹊。我們常見的WEB瀏覽器只是ECMAScript實(shí)現(xiàn)可能的宿主環(huán)境之一。

  • 文檔對(duì)象模型(DOM)
    文檔對(duì)象模型(DOM转锈,Document Object Model)是針對(duì)XML但經(jīng)過擴(kuò)展用于HTML的應(yīng)用程序編程接口(API盘寡,Application Programming Interface)。

  • 瀏覽器對(duì)象模型(BOM)
    訪問和操作瀏覽器窗口的瀏覽器對(duì)象模型(BOM撮慨,Browser Object Model)竿痰。開發(fā)人員使用BOM可以控制瀏覽器顯示頁面以外的部分。而BOM真正與眾不同的地方(也是經(jīng)常會(huì)導(dǎo)致問題的地方)砌溺,還是它作為JavaScript實(shí)現(xiàn)的一部分影涉,至今仍沒有相關(guān)的標(biāo)準(zhǔn)。

  • JavaScript版本
    身為Netscape(網(wǎng)景)“繼承人”的Mozilla公司规伐,是目前唯一沿用最初的JavaScript版本編號(hào)的瀏覽器開發(fā)商蟹倾。在網(wǎng)景JavaScript轉(zhuǎn)手給Mozilla項(xiàng)目的時(shí)候,JavaScript在瀏覽器中最后的版本號(hào)是1.3猖闪,后來鲜棠,隨著Mozilla繼續(xù)開發(fā),JavaScript版本號(hào)逐步遞增培慌。

五豁陆、JavaScript的引入

  • JS代碼,可以放在script標(biāo)簽內(nèi)吵护,script標(biāo)簽可以放置在HTML文檔任何位置盒音;
  <script>
    // JS代碼
  </script>
  • JS代碼表鳍,可以放置在外部的js文件中,通過script標(biāo)簽的src屬性鏈接到頁面中祥诽;
<script type="text/javascript" src="test.js" ></script>

注意: 導(dǎo)入外部JS文件的script不要添加JS代碼譬圣;

注意

六、輸出方式

  • 向網(wǎng)頁文檔中輸出
document.write()
document.writeln()
向網(wǎng)頁文檔中輸出
  • 向web控制臺(tái)輸出
console.log()
向web控制臺(tái)輸出
  • 警告框
alert()

七原押、變量

JavaScript是弱類型腳本語言胁镐,使用變量之前可以無需定義;所以JavaScript支持兩種方式引入變量诸衔。(其他語言例如C語言中盯漂,在定義時(shí)都會(huì)有類型的區(qū)分int a; float b;)

  • 什么是變量?
    變量即是可以存儲(chǔ)數(shù)據(jù)的,可以改變的笨农;
        /* 初中數(shù)據(jù)題目
         * 已知x為20, x + y = 100; 求y的值是多少?
         * 
         * x: 20
         * y: ?
         * x + y = 100
         * 
         * ===> y = 80
         * 
         */
        
        // var是關(guān)鍵字就缆,表示定義變量
        // 定義了一個(gè)變量x,變量x的值為20
        var x = 20;
        
        // 定義了一個(gè)變量為y谒亦,變量y沒有值
        var y;
        
        // x + y = 100; --> y = 100 - x
        y = 100 - x;
        
        alert(y);  // 80
  • 隱式定義: 直接給變量賦值
    // 定義一個(gè)變量a竭宰,其值為'hello world'
    a = "hello world";
    b = 10;
  • 顯式定義: 使用var關(guān)鍵字定義變量(使用該方式聲明變量時(shí)可以沒有初始值,聲明的變量類型是不確定的)
  // 聲明變量a份招,數(shù)據(jù)類型是不確定的
  var a;  
  // 定義一個(gè)變量b切揭,其值為'hello world'
  var b = "hello world";
  var c = 3;
  • 一次性定義多個(gè)變量
  var a,b,c;
  var i=0, j=0, k=0;
  • 命名規(guī)則
  a、變量名必須以字母或下劃線“_”或者“$”開頭锁摔;
  b廓旬、變量名長度不能超過255字符;
  c谐腰、變量名中不允許使用空格孕豹,首字符不能為數(shù)字;
  d十气、變量名區(qū)分大小寫(備注: JavaScript是區(qū)分大小寫的語言)励背;

八、基本運(yùn)算符操作

  • 加法 +
  • 減法 -
  • 乘法 *
  • 除法 /
  • 取余(求模) %
  10 / 3 = 3 ··· 1 

九砸西、字符串拼接

加號(hào)有兩種含義叶眉,如果都是為number類型時(shí),即是加法操作芹枷;如果有一個(gè)是為字符串類型衅疙,即是字符串拼接;

  var str1 = '中國';
  var str2 = '臺(tái)灣';
  // 將字符串str1和str2拼接起來
  var str3 = str1 + str2;

十杖狼、HTML屬性操作

  • 通過id獲取頁面對(duì)應(yīng)元素(document.getElementById)
  var num1 = document.getElementById('num1');
  • 屬性名、屬性值
  <input id=“bt1” type=“button” value=“按鈕”/>
    屬性名: id
    屬性值: bt1
    (注: 屬性名="屬性值")
  • 屬性讀操作: 獲取妖爷、找到
  元素.屬性名
  • 屬性寫操作: 添加蝶涩、替換
  元素.屬性名 = 新值
  • 元素內(nèi)的HTML內(nèi)容
  元素.innerHTML

注意事項(xiàng):
a理朋、JS中不允許出現(xiàn)‘-’,即將‘-’去除掉绿聘,之后將后面小寫字母改為大寫字母即可嗽上;
例如:
font-size —> fontSize
padding-top —> paddingTop
p1.style.fontSize = '10px';
b、JS中class屬性要改為className(class是保留字)
例如: 想要改變某個(gè)元素的class名熄攘,即是p1.className = 'purpleStyle';

十一兽愤、案例 — 猜數(shù)字游戲

  • 隨機(jī)數(shù)
  Math.random(): 得到0~1但不等于1的隨機(jī)數(shù);
  parseInt(): 取整;
  parseInt( Math.random() );
  • 條件判斷
  if( 條件1 == 條件2 ){     // 符合條件即執(zhí)行下面代碼區(qū)域
    // 代碼區(qū)域
  } else if(條件1 == 條件2){   // 符合條件即執(zhí)行下面代碼區(qū)域
    // 代碼區(qū)域
  } else {  // 都不符合上述要求挪圾,即執(zhí)行下面代碼區(qū)域
    // 代碼區(qū)域
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末浅萧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子哲思,更是在濱河造成了極大的恐慌洼畅,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棚赔,死亡現(xiàn)場(chǎng)離奇詭異帝簇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)靠益,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門丧肴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人胧后,你說我怎么就攤上這事芋浮。” “怎么了绩卤?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵途样,是天一觀的道長。 經(jīng)常有香客問我濒憋,道長何暇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任凛驮,我火速辦了婚禮裆站,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘黔夭。我一直安慰自己宏胯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布本姥。 她就那樣靜靜地躺著肩袍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪婚惫。 梳的紋絲不亂的頭發(fā)上氛赐,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天魂爪,我揣著相機(jī)與錄音,去河邊找鬼艰管。 笑死滓侍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牲芋。 我是一名探鬼主播撩笆,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼缸浦!你這毒婦竟也來了夕冲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤餐济,失蹤者是張志新(化名)和其女友劉穎耘擂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體絮姆,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡醉冤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了篙悯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚁阳。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鸽照,靈堂內(nèi)的尸體忽然破棺而出螺捐,到底是詐尸還是另有隱情,我是刑警寧澤矮燎,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布定血,位于F島的核電站,受9級(jí)特大地震影響诞外,放射性物質(zhì)發(fā)生泄漏澜沟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一峡谊、第九天 我趴在偏房一處隱蔽的房頂上張望茫虽。 院中可真熱鬧,春花似錦既们、人聲如沸濒析。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽号杏。三九已至,卻和暖如春斯棒,著一層夾襖步出監(jiān)牢的瞬間盾致,已是汗流浹背莹妒。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绰上,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓渠驼,卻偏偏與公主長得像蜈块,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子迷扇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

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