JavaScript基本語(yǔ)法

JavaScript 的基本語(yǔ)法

1拦赠、語(yǔ)句

JavaScript區(qū)分大小寫,每條語(yǔ)句以分號(hào);結(jié)尾葵姥,用大括號(hào){}表示作用域(而不是Python中的縮進(jìn))荷鼠,所以每條語(yǔ)句和變量之間可以有任意空格、Tab或回車榔幸。JavaScript用C允乐、C++風(fēng)格的/*..*/表示注釋矮嫉。

2、變量

JavaScript 是動(dòng)態(tài)數(shù)據(jù)類型牍疏,即一個(gè)變量的類型隨著其值的變化而變化敞临。變量用var關(guān)鍵字聲明,變量名可以用字母麸澜、數(shù)字、下劃線等組成奏黑。常用的數(shù)據(jù)類型有字符串炊邦、數(shù)字、布爾熟史、數(shù)組馁害、對(duì)象等,字符串用雙引號(hào)表示蹂匹。變量及數(shù)據(jù)類型的舉例如下:

var x, y, xx, y_y       //聲明變量時(shí)無(wú)須指明類型

x = 45          //整型
y = 3.1415926   //浮點(diǎn)型
z = true        //布爾型
xx = new Array(x, "hello", 12, true)    //數(shù)組類型
y_y = {language:"English", title:"python programming"}  // 對(duì)象類型

var zz3 = false             //在變量定義時(shí)直接賦值

var arr = new Array()
arr[0] = "hello world"      //給屬組元素賦值
arr[1] = "I'm python programmer"

JavaScript中的對(duì)象類型與Python中的Dictionary類型相似碘菜,都是用大括號(hào)以鍵/值對(duì)的方式表達(dá)數(shù)據(jù),但其語(yǔ)法不完全相同限寞。在Python中Dictionary的“鍵”是任意數(shù)據(jù)類型忍啸,示例如下:

//這里有Python代碼中Dictionary的使用方法
>>> dict = {"language": "English", "title": "python programming"}
>>> dict
{'language': 'English', 'title': 'python programming'}
>>> dict["language"] = "France"
>>> dict[4] = "new element"
>>> dict
{'language': 'France', 'title': 'python programming', 4: 'new element'}

而在JavaScript的對(duì)象中,“鍵”只能以成員變量的方式出現(xiàn)履植,定義時(shí)鍵上不加雙引號(hào)计雌,示例如下:

//這里是JavaScript中對(duì)象的使用方法
var obj = {language : "English", title : "python programming"}

//既可以使用下標(biāo)訪問(wèn),也可以使用成員變量訪問(wèn)
obj["language"] = "France"
obj.language = "Japanese"

3玫霎、操作符

常用操作符與Python類似凿滤,有+、-庶近、*翁脆、/、%鼻种、==反番、>=、<=等叉钥。此外恬口,JavaScript還允許自增操作(++)、自減操作(--)沼侣。操作符的示例如下:

> txt1 = "python";
"python"
> txt2 = "非常好的編程語(yǔ)言";
"非常好的編程語(yǔ)言"
> txt3 = txt1 + "是" + txt2;
"python是非常好的編程語(yǔ)言"
> number = 5 + 4;
9
> number--;
9
> number
8
> txt4 = txt3 + number;
"python是非常好的編程語(yǔ)言8"
> number += 3;
11
> ret = number < 10;
false
> ret2 = number == 11;
true

4祖能、函數(shù)

JavaScript中用關(guān)鍵字function定義函數(shù),語(yǔ)法如下:

//函數(shù)定義
function functionname(param1,param2...){
    Block_of_function;
}

//函數(shù)調(diào)用
functionname(param1,param2);

和Python一樣蛾洛,JavaScript函數(shù)中的返回值是可選的养铸,如果函數(shù)有返回值雁芙,則可以在block_of_function中用return語(yǔ)句返回,示例如下:

function sum(a,b,c){
    return a+b+c;
}

result = sum(5,6,10);   //result = 21

5钞螟、判斷語(yǔ)句

JavaScript中有兩種邏輯控制語(yǔ)句:ifswitch兔甘。if語(yǔ)句用于對(duì)不同的條件執(zhí)行不同代碼塊;switch語(yǔ)句用于對(duì)一個(gè)表達(dá)式的不同結(jié)果執(zhí)行不同的代碼塊鳞滨。語(yǔ)法如下:

//if語(yǔ)句語(yǔ)法洞焙,其中if、else if拯啦、else是關(guān)鍵字
if(condition1){
    block_of_condition1;
}else if(condition2){
    block_of_condition2;
}else{
    block_of_others;
}

//switch語(yǔ)句語(yǔ)法澡匪,其中switch、case褒链、default唁情、break是關(guān)鍵字
switch(expression){
    case value1:{
        block_for_value1;
        break;
    }
    case value2:
        block_for_value2;
        break;
    default:
        block_for_others;
}

語(yǔ)句if 的語(yǔ)義與Python相似,此處不再舉例甫匹。對(duì)語(yǔ)句switch舉例如下:

var day = new Date().getDay();
switch (day){
    case 1:{
        today = "今天是星期一";
        tomorrow = "明天是星期二";
        break;
    }
    case 2:
        today = "今天是星期二";
        break;
    case 3:
        today = "今天是星期三";
        break;
    case 4:
        today = "今天是星期四";
        break;
    case 5:
        today = "今天是星期五";
        break;
    default:
        today = "今天是周末";
        break;
}

每個(gè)條件的block中可以放多條語(yǔ)句甸鸟,但是每個(gè)塊中都應(yīng)該以break語(yǔ)句結(jié)尾。

注意: switch 語(yǔ)句的每個(gè)塊中都應(yīng)該以break作為最后一條語(yǔ)句兵迅。

6抢韭、循環(huán)語(yǔ)句

JavaScript的循環(huán)語(yǔ)句有forwhile兩種,各有兩種用法恍箭。for的第1種語(yǔ)法如下:

//for 形式一篮绰,與Java/C/C++中的for語(yǔ)句類似:
for(sentencel; sentence2; sentence3){
    Block_of_loop;
}

其中sentence1 在for語(yǔ)句開始時(shí)執(zhí)行且只執(zhí)行一次;sentence2 在每個(gè)loop開始時(shí)執(zhí)行季惯,sentence2 應(yīng)該返回一個(gè)布爾值吠各,如果sentence2 的結(jié)果為true,則執(zhí)行該loop勉抓,否則立即結(jié)束for循環(huán)贾漏;sentence3 在每次循環(huán)結(jié)束時(shí)執(zhí)行。for語(yǔ)句的典型用法如下:

for(var i=0; i < 10; i++){
    document.write("<br>");
}

本例中的循環(huán)體將執(zhí)行10次藕筋,即在document中寫入10個(gè)<br>標(biāo)簽纵散。

for 的第2 種用法和while語(yǔ)句與Python中的語(yǔ)義相似,此處只列出其語(yǔ)法規(guī)則:

//for 形式二隐圾,與Python的for語(yǔ)句類似:
for(x in array){
    block_of_loop;
}

//while 形式一伍掀,先判斷布爾表達(dá)式再執(zhí)行循環(huán)體,如果布爾表達(dá)式為假則終止循環(huán)
while(expression){
    block_of_loop;
}

//while 形式二暇藏,先執(zhí)行循環(huán)體再判斷布爾表達(dá)式蜜笤,如果布爾表達(dá)式為假則終止循環(huán)
do{
    block_of_loop;
}while(expression);

下面是一個(gè)捕捉鼠標(biāo)單擊事件來(lái)觸發(fā)的函數(shù)示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="message"></div>
<!--button是一個(gè)按鈕控件,其onclick屬性定義當(dāng)前用戶單擊按鈕時(shí)執(zhí)行的javascript腳本-->
<button type="button" onclick="hello();">Try it</button>
<!--<script src="myScript.js">外部鏈接方式</script>-->
<!--內(nèi)部嵌入方式-->
<script>
    function hello(){
        document.getElementById("message").innerHTML="Hello world of Javascript";
    }
</script>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盐碱,一起剝皮案震驚了整個(gè)濱河市把兔,隨后出現(xiàn)的幾起案子沪伙,更是在濱河造成了極大的恐慌,老刑警劉巖县好,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件围橡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡缕贡,警方通過(guò)查閱死者的電腦和手機(jī)翁授,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)晾咪,“玉大人收擦,你說(shuō)我怎么就攤上這事≠鹘矗” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵牧嫉,是天一觀的道長(zhǎng)剂跟。 經(jīng)常有香客問(wèn)我,道長(zhǎng)酣藻,這世上最難降的妖魔是什么曹洽? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮辽剧,結(jié)果婚禮上送淆,老公的妹妹穿的比我還像新娘。我一直安慰自己怕轿,他們只是感情好偷崩,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著撞羽,像睡著了一般阐斜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诀紊,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天谒出,我揣著相機(jī)與錄音,去河邊找鬼邻奠。 笑死笤喳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碌宴。 我是一名探鬼主播杀狡,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贰镣!你這毒婦竟也來(lái)了捣卤?” 一聲冷哼從身側(cè)響起忍抽,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎董朝,沒(méi)想到半個(gè)月后鸠项,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡子姜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年祟绊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哥捕。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡牧抽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出遥赚,到底是詐尸還是另有隱情扬舒,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布凫佛,位于F島的核電站讲坎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏愧薛。R本人自食惡果不足惜晨炕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望毫炉。 院中可真熱鬧瓮栗,春花似錦、人聲如沸瞄勾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)进陡。三九已至货邓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間四濒,已是汗流浹背换况。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盗蟆,地道東北人戈二。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像喳资,于是被迫代替她去往敵國(guó)和親觉吭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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