天天看點

js選擇、循環與java的差別

目錄

if條件表達式:

js獨特的表達式解釋:

代碼塊的使用:

檢查變量是否存在:

使用三元運算符代替if

switch語句:

while,do-while,for,for-in

if條件表達式:

與java使用方法一樣,不過對于表達式的解析不一樣。

if('表達式一'){
  result = '表達式一成立'; //result就是自己定義的變量,沒有具體意義
}else if('表達式二'){
  result = '表達式一不成立且表達式二成立';
}else{
  result = '上面的表達式都不成立';
}
           

js獨特的表達式解釋:

java表達式隻能是true與false,而js通允多種類型,不過最後都會編譯boolean型

if('1' == 1){ //==:運算符稱作相等,用來檢測兩個操作數是否相等,這裡的相等定義的非常寬松,可以允許進行類型轉換 在這裡 字元串'1' 轉換為 數字 1 是以表達式成立
  result = '\'1\' == 1';
}
"'1' == 1"
if('1' === 1){ //===:用來檢測兩個操作數是否嚴格相等,不允許類型轉換。是以這裡肯定是不成立的
  result = '\'1\' === 1';
}
undefined
if(3){ //數字轉boolean時,0為false,1為true
  result = '3為true';
}
"3為true"
if(0){
  result = '0為false';
}
undefined
if(null){ //null轉boolean為false,這裡是不成立的
  result = ' null為false';
}
undefined
if('aa'){ //字元串轉boolean為true
  result = ' aa為true';
}
" aa為true"
           

代碼塊的使用:

{
  result = '1';
  {
    result = 2;
  }
}
//等價與下邊代碼,使用{}是為了增加代碼可讀性與可維護性
  result = '1';
  result = 2;
           

檢查變量是否存在:

看起來,更像是折中,既然typeof會傳回資料的類型,而隻有不存在的變量與未指派的變量會傳回 undefined,那麼隻要傳回的不是undefined就說明這個變量已經存在了。

var result = '';
undefined
if(typeof somevar !== "undefined"){ //若somevar不存在,或隻是定義而未指派 表達式成功
  result =  'yea';
}
undefined
result; //可見if語句未執行
""
           

使用三元運算符代替if

//三目運算符使用
var result  = (1>2) ? 1:2;  //當表達式(1>2)成立,執行 : 前面的,不成立執行 :後面的,無論表達式多複雜隻要厘清互相間的連接配接就能得到正确的答案
//if語句實作相同功能
if(1>2){
  result = 1;
}else{
  result = 2;
}

//三目運算符看起來更加整潔,不過随着條件越來越多,三目操作符會難以了解如
var result  = (1>2) ? 1:2>3 ? 2:3; //答案是result = 3
           

switch語句:

與java沒有不同

var a = '1';
undefined
var result = '';
undefined
switch(a){  //括号中的表達式可以是任何能提供傳回值的東西
  case 1:
    result = 'Number 1';
    break; //break是case的結束符,有時候故意省略。作用是相鄰的case共享一段代碼
  case '1':
    result = 'String 1';
    break;
  default: //盡量使用default,這樣當case找不到比對值,也能傳回一些有用的值
    result = 'I don\'t know';
    break;
}
"String 1"
           

while,do-while,for,for-in

與java使用方法一樣,其中for-in相當于java的foreach被用來周遊某個數組。while與do-while的差別分别是先判斷在執行與先執行在判斷

var i = 0;
undefined
while(i < 10){
  i++;
}
9
var j = 0;
undefined
do{
  i++;
}while(i<10);
10
for(var k = 0; k < 10; k++){}
undefined
k
10

var a =  ['a','b','c','x','y','z'];
for(var i in a){ //用來周遊a數組
  result += 'index:'+i+',value: '+a[i]+'\n';
}
"String 1index:0,value: a
index:1,value: b
index:2,value: c
index:3,value: x
index:4,value: y
index:5,value: z
"