W3C:JavaScript基本語法

  • HTML 中的腳本必須位于 <script> 與 </script> 標(biāo)簽之間抢呆。
  • 腳本可被放置在 HTML 頁面的 <body> 和 <head> 部分中翰萨。
  • 通常的做法是把函數(shù)放入 <head> 部分中琢感,或者放在頁面底部丢间。這樣就可以把它們安置到同一處位置,不會(huì)干擾頁面的內(nèi)容驹针。
  • 也可以把腳本保存到外部文件中烘挫。外部文件通常包含被多個(gè)網(wǎng)頁使用的代碼。
    外部 JavaScript 文件的文件擴(kuò)展名是 .js牌捷。
    如需使用外部文件墙牌,請(qǐng)?jiān)?<script> 標(biāo)簽的 "src" 屬性中設(shè)置該 .js 文件。
  • 外部腳本不能包含 <script> 標(biāo)簽暗甥。
  • 如需從 JavaScript 訪問某個(gè) HTML 元素喜滨,您可以使用 document.getElementById(id) 方法。
    請(qǐng)使用 "id" 屬性來標(biāo)識(shí) HTML 元素:
  • 請(qǐng)使用 document.write() 僅僅向文檔輸出寫內(nèi)容撤防。
    如果在文檔已完成加載后執(zhí)行 document.write虽风,整個(gè) HTML 頁面將被覆蓋
  • 通常我們?cè)诿織l可執(zhí)行的語句結(jié)尾添加分號(hào)。
    使用分號(hào)的另一用處是在一行中編寫多條語句寄月。
    在 JavaScript 中辜膝,用分號(hào)來結(jié)束語句是可選的。
  • JavaScript 對(duì)大小寫是敏感的漾肮。
  • JavaScript 會(huì)忽略多余的空格厂抖。您可以向腳本添加空格,來提高其可讀性克懊。
  • JavaScript 是腳本語言忱辅。瀏覽器會(huì)在讀取代碼時(shí)七蜘,逐行地執(zhí)行腳本代碼。而對(duì)于傳統(tǒng)編程來說墙懂,會(huì)在執(zhí)行前對(duì)所有代碼進(jìn)行編譯橡卤。
  • 您可以在文本字符串中使用反斜杠對(duì)代碼行進(jìn)行換行。
  • 單行注釋以 //開頭损搬。
  • 多行注釋以 /*開始碧库,以*/結(jié)尾。
  • 變量是存儲(chǔ)信息的容器巧勤。
  • 變量必須以字母開頭
    變量也能以 $ 和 _ 符號(hào)開頭(不過我們不推薦這么做)
    變量名稱對(duì)大小寫敏感(y 和 Y 是不同的變量)
    JavaScript 語句和 JavaScript 變量都對(duì)大小寫敏感嵌灰。
  • 當(dāng)您向變量分配文本值時(shí),應(yīng)該用雙引號(hào)或單引號(hào)包圍這個(gè)值颅悉。
    當(dāng)您向變量賦的值是數(shù)值時(shí)伞鲫,不要使用引號(hào)。如果您用引號(hào)包圍數(shù)值签舞,該值會(huì)被作為文本來處理。
  • 在 JavaScript 中創(chuàng)建變量通常稱為“聲明”變量柒瓣。
    我們使用 var 關(guān)鍵詞來聲明變量
    一個(gè)好的編程習(xí)慣是儒搭,在代碼開始處,統(tǒng)一對(duì)需要的變量進(jìn)行聲明芙贫。
    您可以在一條語句中聲明很多變量搂鲫。該語句以 var 開頭,并使用逗號(hào)分隔變量即可
    聲明也可橫跨多行
    在計(jì)算機(jī)程序中磺平,經(jīng)常會(huì)聲明無值的變量魂仍。未使用值來聲明的變量,其值實(shí)際上是 undefined拣挪。
    如果重新聲明 JavaScript 變量擦酌,該變量的值不會(huì)丟失
  • JavaScript 擁有動(dòng)態(tài)類型。這意味著相同的變量可用作不同的類型:
var x                // x 為 undefined
var x = 6;           // x 為數(shù)字
var x = "Bill";      // x 為字符串
  • 字符串可以是引號(hào)中的任意文本菠劝。您可以使用單引號(hào)或雙引號(hào)
    您可以在字符串中使用引號(hào)赊舶,只要不匹配包圍字符串的引號(hào)即可:
var answer="Nice to meet you!";
var answer="He is called 'Bill'";
var answer='He is called "Bill"';
  • JavaScript 只有一種數(shù)字類型。數(shù)字可以帶小數(shù)點(diǎn)赶诊,也可以不帶:
var x1=34.00;      //使用小數(shù)點(diǎn)來寫
var x2=34;         //不使用小數(shù)點(diǎn)來寫

極大或極小的數(shù)字可以通過科學(xué)(指數(shù))計(jì)數(shù)法來書寫:

var y=123e5;      // 12300000
var z=123e-5;     // 0.00123
  • 布爾(邏輯)只能有兩個(gè)值:true 或 false笼平。
  • 數(shù)組下標(biāo)是基于零的,所以第一個(gè)項(xiàng)目是 [0]舔痪,第二個(gè)是 [1]寓调,以此類推。
var cars=new Array();     // 推薦這種
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";
var cars=new Array("Audi","BMW","Volvo");
var cars=["Audi","BMW","Volvo"];   // 推薦這種
  • 對(duì)象由花括號(hào)分隔锄码。在括號(hào)內(nèi)部夺英,對(duì)象的屬性以名稱和值對(duì)的形式 (name : value) 來定義晌涕。屬性由逗號(hào)分隔:
var person={firstname:"Bill", lastname:"Gates", id:5566};

空格和折行無關(guān)緊要。聲明可橫跨多行:

// 推薦這種
var person={
firstname : "Bill",
lastname  : "Gates",
id        :  5566
};

對(duì)象屬性有兩種尋址方式:

name=person.lastname;             // 推薦這種
name=person["lastname"];
  • Undefined 這個(gè)值表示變量不含有值秋麸。
    可以通過將變量的值設(shè)置為 null 來清空變量渐排。
  • 當(dāng)您聲明新變量時(shí),可以使用關(guān)鍵詞 "new" 來聲明其類型:
    JavaScript 變量均為對(duì)象灸蟆。當(dāng)您聲明一個(gè)變量時(shí)驯耻,就創(chuàng)建了一個(gè)新的對(duì)象。
var carname=new String;
var x=      new Number;
var y=      new Boolean;
var cars=   new Array;
var person= new Object;
  • JavaScript 中的所有事物都是對(duì)象:字符串炒考、數(shù)字可缚、數(shù)組、日期斋枢,等等帘靡。
    在 JavaScript 中,對(duì)象是擁有屬性和方法的數(shù)據(jù)瓤帚。
    在面向?qū)ο蟮恼Z言中描姚,屬性和方法常被稱為對(duì)象的成員。
    您還可以向已存在的對(duì)象添加屬性和方法戈次。
    在面向?qū)ο蟮恼Z言中轩勘,使用 camel-case 標(biāo)記法的函數(shù)是很常見的。您會(huì)經(jīng)城有埃看到 someMethod()這樣的函數(shù)名绊寻,而不是 some_method()
    訪問對(duì)象屬性的語法是:
objectName.propertyName

您可以通過下面的語法調(diào)用方法:

objectName.methodName()
  • 函數(shù)是由事件驅(qū)動(dòng)的或者當(dāng)它被調(diào)用時(shí)執(zhí)行的可重復(fù)使用的代碼塊悬秉。
    可以在某事件發(fā)生時(shí)直接調(diào)用函數(shù)(比如當(dāng)用戶點(diǎn)擊按鈕時(shí))澄步,并且可由 JavaScript 在任何位置進(jìn)行調(diào)用。
    函數(shù)就是包裹在花括號(hào)中的代碼塊和泌,前面使用了關(guān)鍵詞function
function functionname()
{
    這里是要執(zhí)行的代碼
}

JavaScript 對(duì)大小寫敏感村缸。關(guān)鍵詞 function必須是小寫的,并且必須以與函數(shù)名稱相同的大小寫來調(diào)用函數(shù)武氓。
在調(diào)用函數(shù)時(shí)王凑,您可以向其傳遞值,這些值被稱為參數(shù)聋丝。
在使用 return 語句時(shí)索烹,函數(shù)會(huì)停止執(zhí)行,并返回指定的值弱睦。整個(gè) JavaScript 并不會(huì)停止執(zhí)行百姓,僅僅是函數(shù)。JavaScript 將繼續(xù)執(zhí)行代碼况木,從調(diào)用函數(shù)的地方垒拢。在您僅僅希望退出函數(shù)時(shí) 旬迹,也可使用 return語句。返回值是可選的

  • 在 JavaScript 函數(shù)內(nèi)部聲明的變量(使用 var)是局部變量求类,所以只能在函數(shù)內(nèi)部訪問它奔垦。(該變量的作用域是局部的)。
    您可以在不同的函數(shù)中使用名稱相同的局部變量尸疆,因?yàn)橹挥新暶鬟^該變量的函數(shù)才能識(shí)別出該變量椿猎。
    只要函數(shù)運(yùn)行完畢,本地變量就會(huì)被刪除寿弱。
  • 在函數(shù)外聲明的變量是全局變量犯眠,網(wǎng)頁上的所有腳本和函數(shù)都能訪問它。
  • JavaScript 變量的生命期從它們被聲明的時(shí)間開始症革。
    局部變量會(huì)在函數(shù)運(yùn)行以后被刪除筐咧。
    全局變量會(huì)在頁面關(guān)閉后被刪除。
  • 如果您把值賦給尚未聲明的變量噪矛,該變量將被自動(dòng)作為全局變量聲明量蕊。
carname="Volvo";  // 將聲明一個(gè)全局變量 carname,即使它在函數(shù)內(nèi)執(zhí)行艇挨。 要避免做這樣的事情危融。
  • +運(yùn)算符用于把文本值或字符串變量加起來(連接起來)。
    如需把兩個(gè)或多個(gè)字符串變量連接起來雷袋,請(qǐng)使用 + 運(yùn)算符躏尉。
    要想在兩個(gè)字符串之間增加空格霸株,需要把空格插入一個(gè)字符串之中夜畴,或者把空格插入表達(dá)式中:
txt1="What a very";
txt2="nice day";
txt3=txt1+" "+txt2;

如果把數(shù)字與字符串相加嗡靡,結(jié)果將成為字符串谴古。

  • 請(qǐng)使用小寫的if狸剃。使用大寫字母(IF)會(huì)生成 JavaScript 錯(cuò)誤怯屉!
  • JavaScript 支持不同類型的循環(huán):
    for - 循環(huán)代碼塊一定的次數(shù)
    for/in - 循環(huán)遍歷對(duì)象的屬性
    while - 當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊
    do/while - 同樣當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊
  • break 語句用于跳出循環(huán)抛猫。
    continue 用于跳過循環(huán)中的一個(gè)迭代贼陶。
    通過標(biāo)簽引用刃泡,break 語句可用于跳出任何 JavaScript 代碼塊:
cars=["BMW","Volvo","Saab","Ford"];
list:
{
document.write(cars[0] + "<br>");
document.write(cars[1] + "<br>");
document.write(cars[2] + "<br>");
break list;
document.write(cars[3] + "<br>");    // 被跳過,不執(zhí)行
document.write(cars[4] + "<br>");    // 被跳過碉怔,不執(zhí)行
document.write(cars[5] + "<br>");    // 被跳過烘贴,不執(zhí)行
}
  • try 語句測(cè)試代碼塊的錯(cuò)誤。
    catch 語句處理錯(cuò)誤撮胧。
    throw 語句創(chuàng)建自定義錯(cuò)誤桨踪。
    如果把 throw 與 try 和 catch 一起使用,那么您能夠控制程序流芹啥,并生成自定義的錯(cuò)誤消息锻离。
function myFunction()
{
    try
    { 
        var x=document.getElementById("demo").value;
        if(x=="")    throw "值為空";
        if(isNaN(x)) throw "不是數(shù)字";
        if(x>10)     throw "太大";
        if(x<5)      throw "太小";
    }
    catch(err)
    {
        var y=document.getElementById("mess");
        y.innerHTML="錯(cuò)誤:" + err + "铺峭。";
    }
}
  • JavaScript 可用來在數(shù)據(jù)被送往服務(wù)器前對(duì) HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證。
  • 必填(或必選)項(xiàng)目
    下面的函數(shù)用來檢查用戶是否已填寫表單中的必填(或必選)項(xiàng)目汽纠。假如必填或必選項(xiàng)為空卫键,那么警告框會(huì)彈出,并且函數(shù)的返回值為 false虱朵,否則函數(shù)的返回值則為 true(意味著數(shù)據(jù)沒有問題):
function validate_required(field,alerttxt)
{
    with (field)
    {
        if (value==null||value=="")
          {alert(alerttxt);return false}
        else {return true}
    }
}
  • E-mail 驗(yàn)證
    下面的函數(shù)檢查輸入的數(shù)據(jù)是否符合電子郵件地址的基本語法莉炉。
    意思就是說,輸入的數(shù)據(jù)必須包含 @ 符號(hào)和點(diǎn)號(hào)(.)卧秘。同時(shí)呢袱,@ 不可以是郵件地址的首字符,并且 @ 之后需有至少一個(gè)點(diǎn)號(hào):
function validate_email(field,alerttxt)
{
    with (field)
    {
        apos=value.indexOf("@")
        dotpos=value.lastIndexOf(".")
        if (apos<1||dotpos-apos<2) 
          {alert(alerttxt);return false}
        else {return true}
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末翅敌,一起剝皮案震驚了整個(gè)濱河市羞福,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚯涮,老刑警劉巖治专,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異遭顶,居然都是意外死亡张峰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門棒旗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喘批,“玉大人,你說我怎么就攤上這事铣揉∪纳睿” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵逛拱,是天一觀的道長敌厘。 經(jī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
  • 文/蒼蘭香墨 我猛地睜開眼需五,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了轧坎?” 一聲冷哼從身側(cè)響起宏邮,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缸血,沒想到半個(gè)月后蜜氨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捎泻,尸身上長有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
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昏翰。三九已至苍匆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間棚菊,已是汗流浹背浸踩。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留统求,地道東北人检碗。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像码邻,于是被迫代替她去往敵國和親折剃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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