JavaScript學習之基礎語法

1.變量

JavaScript 的變量名區(qū)分大小寫腿箩,A和a是兩個不同的變量苦囱。如果只是聲明變量而沒有賦值焰情,則該變量的值是undefined闹司。undefined是一個特殊的值嗤朴,表示“無定義”配椭。

var a;
a // undefined

如果一個變量沒有聲明就直接使用,JavaScript 會報錯播赁,告訴你變量未定義颂郎。

x
// ReferenceError: x is not defined

1.1變量的提升

javaScript 引擎的工作方式是,先解析代碼容为,獲取所有被聲明的變量乓序,然后再一行一行地運行。這造成的結果坎背,就是所有的變量的聲明語句替劈,都會被提升到代碼的頭部,這就叫做變量提升(hoisting)

console.log(a);
var a = 1;

上面的語法不會報錯,因為存在變量提升,它的實際運行會是這樣

var a;
console.log(a);
a = 1;//undefined

輸出的結果是undefined

2.標識符(identifier)

規(guī)則

  • 區(qū)分大小寫得滤,A與a是兩個不同的標識符陨献。
  • 標識符首字符可以是Unicode 字母,下劃線(_),美元符($),不能是數字懂更。
  • 標識符中其它字符可以是Unicode 字母,下劃線(_)眨业、美元符($)急膀、數字組成的。
var 1// Unexpected number,第一個字符不能是數字
var ** //Unexpected token ** 標志符中不能有星號
var -d //Unexpected token - 標志符中不能有減號或連字符
var u+1 =3 //Unexpected token + 標志符中不能有加號

JavaScript 有一些保留字龄捡,不能用作標識符:arguments卓嫂、break、case聘殖、catch晨雳、class、const奸腺、continue餐禁、debugger、default突照、delete帮非、do、else绷旗、enum喜鼓、eval、export衔肢、extends庄岖、false、finally角骤、for隅忿、function、if邦尊、implements背桐、import、in蝉揍、instanceof链峭、interface、let又沾、new弊仪、null、package杖刷、private励饵、protected、public滑燃、return役听、static、super、switch典予、this甜滨、throw、true熙参、try艳吠、typeof、var孽椰、void、while凛篙、with黍匾、yield。

3.注釋

// 單行注釋
<!-- 單行注釋
--> 單行注釋(只有在行首,其他地方被當作運算符)
/*
多行
注釋
*/

4.區(qū)塊

對于var命令來說呛梆,JavaScript 的區(qū)塊不構成單獨的作用域(scope)

{
  var a = 1;
}

a // 1

上面代碼中,對于區(qū)塊內部的a變量,在區(qū)塊外部依然可以訪問,在JavaScript中,區(qū)塊一般用來構成復雜的語法

5.條件語句

5.1 if 和 if ... else語句

if語法結構

if(條件) {//條件是一個bool值,true 或 false
  語句
}
var i = 2;
if (i == 2) {
  console.log('i的值為2'); //i的值為2
}
賦值表達式(=)
相等運算符(==)
嚴格相等運算符(===)

if ... else 語法結構

if (條件) {
  // 滿足條件時锐涯,執(zhí)行的語句
} else {
  // 不滿足條件時,執(zhí)行的語句
}

5.2 switch語句

語法結構

switch (a) {
  case "a":
    // 語句a...
    break;
  case "b":
    //語句b ...
    break;
  default:
    // 語句default...
}
  • 當符合case中的a條件時,case中的語句a會執(zhí)行,break關鍵字會中斷switch語句執(zhí)行下一個case語句,如果沒有break,下一個case語句分執(zhí)行
  • case語句中可以用表達式,但是和switch后面的表達式是用===匹配,不會進行強類型轉換
    5.3 三元運算符
(條件) ? 表達式1 : 表達式2
當條件為true時,執(zhí)行表達式1 否則執(zhí)行表達式2
var i = 2;
var a;
i == 2  ?  a = i : a = 3
console.log(a)//a = 2

6.循環(huán)語句

for循環(huán)

for (初始化表達式; 條件; 遞增或遞減表達式) {
  語句
}
var a = 3;
for (var i = 0; i < a; i++) {
  console.log(i);
}
// 0 1 2

var b = 3;
for (var i = b; i > 0; i--) {
  console.log(i);
}
//3 2 1

while 循環(huán)

while(條件) {
語句
};

do...while循環(huán)

do {
語句
}while(條件);

eg:
var i = 5;
do {
   console.log('run');
   i--;
   console.log(i);
}while(i > 1);
//run 4 3 2 1

不管條件是否為真填物,do...while循環(huán)至少運行一次

break和continue

break語句用于跳出代碼塊或循環(huán)

for(i = 0; i < 5; i ++) {
    if(i == 3) {
      console.log('break');
      break;
    }
    console.log(i);
}
輸出:0 1 2 break

continue語句用于跳出當次循環(huán),繼續(xù)執(zhí)行下一次循環(huán)(如果有)

for(i = 0; i < 5; i ++) {
    if(i == 3) {
      console.log('continue');
      continue;
    }
    console.log(i);
}
輸出:0 1 2 continue 4

7.標簽(label)

相當于定位符纹腌,用于跳轉到程序的任意位置,標簽通常與break語句和continue語句配合使用,跳出特定的循環(huán)

label:
  語句
test: 
    for(i = 0; i < 5; i ++) {
      for(j = 0; j < 5; j ++) {
           if(j == 3) {
            break test;
           }
           console.log('i = ' + i + `, j = ` + j);
        }
    }
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2

參考:https://wangdoc.com/javascript/basic/grammar.html

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末滞磺,一起剝皮案震驚了整個濱河市升薯,隨后出現的幾起案子,更是在濱河造成了極大的恐慌击困,老刑警劉巖涎劈,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異阅茶,居然都是意外死亡蛛枚,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門脸哀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹦浦,“玉大人,你說我怎么就攤上這事撞蜂∶は猓” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵谅摄,是天一觀的道長徒河。 經常有香客問我,道長送漠,這世上最難降的妖魔是什么顽照? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上代兵,老公的妹妹穿的比我還像新娘尼酿。我一直安慰自己,他們只是感情好植影,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布裳擎。 她就那樣靜靜地躺著,像睡著了一般思币。 火紅的嫁衣襯著肌膚如雪鹿响。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天谷饿,我揣著相機與錄音惶我,去河邊找鬼。 笑死博投,一個胖子當著我的面吹牛绸贡,可吹牛的內容都是我干的。 我是一名探鬼主播毅哗,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼听怕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了虑绵?” 一聲冷哼從身側響起尿瞭,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒸殿,沒想到半個月后筷厘,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡宏所,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年酥艳,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爬骤。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡充石,死狀恐怖,靈堂內的尸體忽然破棺而出霞玄,到底是詐尸還是另有隱情骤铃,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布坷剧,位于F島的核電站惰爬,受9級特大地震影響,放射性物質發(fā)生泄漏惫企。R本人自食惡果不足惜撕瞧,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一陵叽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丛版,春花似錦巩掺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至豫缨,卻和暖如春独令,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背好芭。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工记焊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人栓撞。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像碗硬,于是被迫代替她去往敵國和親瓤湘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容

  • 前端07班 王語句JavaScript程序的執(zhí)行單位為行(line)恩尾,也就是一行一行地執(zhí)行弛说。一般情況下,每一行就是...
    ea203453e188閱讀 888評論 0 4
  • JavaScript 的基本語法 語句 JavaScript 程序的執(zhí)行單位為行(line)翰意,也就是一行一行地執(zhí)行...
    hnscdg閱讀 650評論 0 0
  • 語句 JavaScript程序的執(zhí)行單位為行(line)木人,也就是一行一行地執(zhí)行。一般情況下冀偶,每一行就是一個語句醒第。 ...
    米塔塔閱讀 458評論 1 10
  • 摘要:1.語句2.變量2.1變量提升3.標識符4.注釋5.區(qū)塊6.條件語句6.1 if 結構6.2 if…else...
    徐國軍_plus閱讀 365評論 0 5
  • 1.語句 這條語句先用var命令,聲明了變量a进鸠,然后將1 + 2的運算結果賦值給變量a稠曼。1 + 2叫做表達式(ex...
    徵羽kid閱讀 289評論 4 0