js基本語法

1.表達式與語句

  • 表達式:是一組代碼的集合,返回一個值
1 + 3
  • 語句:是為了完成某種任務而進行的操作。以分號結尾如输,一個分號就表示一個語句結束。多個語句可以寫在一行內央勒。
var a = 1 + 3;
var a = 1 + 3 ; var b = 'abc';
;;;    //表示3個空語句

區(qū)別:
語句一般情況下不需要返回值不见;
表達式一定會返回一個值

2.標識符

  • 標識符對大小寫敏感,aA是兩個不同的標識符
  • 第一個字符崔步,可以是任意Unicode字母(包括英文字母和其他語言的字母)稳吮,以及美元符號($)和下劃線(_)
  • 二個字符及后面的字符,除了Unicode字母井濒、美元符號和下劃線灶似,還可以用數字0-9
    注釋:一種是單行注釋,用//起頭瑞你;另一種是多行注釋酪惭,放在/* 和 */之間。

3.if else 語句

  • 語法
if (表達式) {
   語句
} else if (表達式)  {
   語句
} else {
   語句
}
  • {}在語句只有一句的時候可以省略

Test1:以下表達式輸出什么: a等于2

a = 1
if (a === 2)
  console.log('a')
  console.log('a等于2')

因為省略了{}者甲,if表達式相當于if (a === 2){console.log('a')},代碼順序執(zhí)行春感,最后輸出a等于2

a = 1
if (a === 2){
  console.log('a')
}
console.log('a等于2')

Test2:以下表達式輸出什么: a等于2

a = 1
if (a === 2)
  console.log('a');console.log('a等于2')

Test3:以下表達式輸出什么: undefined

a = 1
if (a === 2)
  console.log('a'),console.log('a等于2')

switch 語句

//語法
switch(expresstion){
    case value1:
        statement;
        break;
    case value2:
        statement;
        break;
    case value3:
        statement;
        break;
    default:
        statement;
}

如果表達式等于case的值,對應的語句就會執(zhí)行
break關鍵字會使程序跳出switch語句,不添加break程序會多次判斷case虏缸,進入相應流程;
沒有一個值符合case鲫懒,流程進入default子句,很多規(guī)范也強調必須添加default部分

問號冒號表達式

表達式1?表達式2:表達式3
function max(a,b){
    if(a>b) return a;
    else return b;
}

function max(a,b){
    return a>b?a:b
}

&& 且運算符

expr1 && expr2

若 expr1 可轉換為 true刽辙,則返回 expr2窥岩;否則,返回 expr1扫倡。
并不會取true/false

if(window.a){
  console.log('a存在')
}

window.a && console.log('a存在')

|| 或運算符

expr1 || expr2

若 expr1 可轉換為 true谦秧,則返回 expr1竟纳;否則,返回 expr2疚鲤。

c = c || 100

if (c){
  c = c 
}else{
  c = 100
}

4.while循環(huán)

while語句屬于前測試循環(huán)語句锥累,也就是在循環(huán)體內的代碼被執(zhí)行之前,就會對條件判斷集歇,不符合的話就不會執(zhí)行

while(表達式){
    語句;
}

var i = 0
while(i<10){
  console.log(i)
  i += 1
}
//輸出 0 1 2 3 4 5 6 7 8 9

Test:輸出結果是否為死循環(huán): 是桶略,因為0.1為浮點數

var a = 0.1
while(a !== 1){
  console.log(a)
  a = a + 0.1
}

5.for循環(huán)

for語句也是前測試循環(huán)語句,但具備在執(zhí)行循環(huán)代碼以前初始化變量和定義循環(huán)后要執(zhí)行代碼的能力
先執(zhí)行語句1诲宇,然后判斷表達式2际歼;如果為真,執(zhí)行循環(huán)體姑蓝,再執(zhí)行語句3鹅心;如果為假,直接退出循環(huán)

for(語句1; 表達式2; 語句3){
    循環(huán)體
}

for(var i = 10; i > 0; i--){
    console.log(i);
}
// 輸出 10 9 8 7 6 5 4 3 2 1 

Test:輸出結果為纺荧?十個0

for(var i = 10; i > 0; i--){
    setTimeout(()=>{
      console.log(i);
    },0)
}

先執(zhí)行for循環(huán)旭愧,i值為0,過一陣之后執(zhí)行setTimeout函數輸出i宙暇;因為for循環(huán)10次输枯,setTimeout函數執(zhí)行10次,所以輸出10個0

6.break占贫、continue

  • break 用于強制退出循環(huán)體桃熄,執(zhí)行循環(huán)后面的語句
for (var i = 0; i < 5; i++) {
  console.log(i);
  if (i === 3)
    break;
}
// 輸出 0 1 2 3
  • continue 用于退出本次循環(huán),執(zhí)行下次循環(huán)
var i = 0;
while (i < 10){
  i++;
  if (i % 2 === 0) continue; //i為偶數型奥,跳出本次循環(huán)
  console.log( i);
}
//輸出 1 3 5 7 9

Test:輸出結果瞳收? 0 1 2 3 4

for (var i = 0; i < 5; i++) {
  for( var j = 10; j < 15; j++ ){
    if( i ===2 ) break
  }
  console.log(i)
}

因為存在多重循環(huán),break語句和continue語句都只針對最內層循環(huán)

7.label

為代碼添加標簽桩引,方便后續(xù)使用,語法:
labelname: statement;

foo: {
  console.log(1);
  break foo;    //跳出代碼塊
  console.log('本行不會輸出');
}
console.log(2);
// 輸出1 2

foo: {1};    
console.log(2);
// 輸出 2

{                    //代碼塊 
  foo: {1};
  console.log(2);
}
// 輸出 2

{                    //代碼塊 
  foo: {1};     
}            

最后表示 代碼塊中有foo標簽缎讼,標簽內容為1

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市坑匠,隨后出現(xiàn)的幾起案子血崭,更是在濱河造成了極大的恐慌,老刑警劉巖厘灼,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夹纫,死亡現(xiàn)場離奇詭異,居然都是意外死亡设凹,警方通過查閱死者的電腦和手機舰讹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闪朱,“玉大人月匣,你說我怎么就攤上這事钻洒。” “怎么了锄开?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵素标,是天一觀的道長。 經常有香客問我萍悴,道長头遭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任癣诱,我火速辦了婚禮计维,結果婚禮上,老公的妹妹穿的比我還像新娘撕予。我一直安慰自己鲫惶,他們只是感情好,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布实抡。 她就那樣靜靜地躺著剑按,像睡著了一般。 火紅的嫁衣襯著肌膚如雪澜术。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天猬腰,我揣著相機與錄音鸟废,去河邊找鬼。 笑死姑荷,一個胖子當著我的面吹牛盒延,可吹牛的內容都是我干的。 我是一名探鬼主播鼠冕,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼添寺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了懈费?” 一聲冷哼從身側響起计露,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎憎乙,沒想到半個月后票罐,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡泞边,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年该押,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阵谚。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚕礼,死狀恐怖烟具,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情奠蹬,我是刑警寧澤朝聋,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站罩润,受9級特大地震影響玖翅,放射性物質發(fā)生泄漏。R本人自食惡果不足惜割以,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一金度、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧严沥,春花似錦猜极、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至翩瓜,卻和暖如春受扳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兔跌。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工勘高, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坟桅。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓华望,卻偏偏與公主長得像,于是被迫代替她去往敵國和親仅乓。 傳聞我的和親對象是個殘疾皇子赖舟,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356