1、當條件成立時執行a方法,當條件失敗是執行b方法
通常我們會這樣寫:
var還可以這樣表達:result;
if(isok)
else
var result=isok? funa():funb()2、當條件成立執某個方法
通常方式:
if我更喜歡這樣寫:(isok)
isok&&dosomething();如果乙個變數沒定義或沒有值則給它一預設值
str=str||"ok";上面的方式可行,是因為在js邏輯運算中,返回值不一定是true或false,也可以是其他任何值,而且 0、""、null、false、undefined、nan都會判為false,其他都為true。舉例:arr=arr||;
1&&"ok" //3、當進行多個條件判段時表示式的值為字串"ok",邏輯上被判定為 true
1||"ok" //
表示式的值為數字1,邏輯上被判定為 true
null|| //
表示式的值為陣列,邏輯上被判定為 true
null&& //
表示式的值為null,邏輯上被判定為 false
給乙個例子:每種顏色對應乙個值,比如"white","red","green","yellow","gray","blue" 分別對應的值為0,1,2,3,4,5
1) 問題一:根據值獲取顏色
實現方式一
?
function
getcolorbyval(val)
else
if
(val == 1)
else
if
(val == 2)
else
if
(val == 3)
else
if
(val == 4)
else
if
(val == 5)
return
color;
}
實現方式二
function實現方式三getcolorbyval(val)
return
color;
}
?
function
getcolorbyval(val)
呼叫: var color=getcolorbyval(2);
方式一和方式二相比沒什麼差別,但方式二稍微好一點,而方式三則是讓人眼前一亮,短小精悍就完成了功能。不過有的人會說顏色的值剛好是陣列下標,所以我們再來一題:
2) 問題二:根據顏色獲取值
你可以用if 或switch 語句來完成,不過這裡給出另外兩種方式:
方式一:
function方式二:getvalbycolor(color)
}return
result;
}
function呼叫: var val=getvalbycolor("red");getvalbycolor(color)[color];
}
對比一下很明顯,方式二更簡單而且易懂,巧妙在於構造乙個物件,通過屬性獲取值,從而避開了繁瑣的判斷。
4、交換兩個變數的值
通常是這樣實現的:
var temp=0,a=5,b=10;不過還可以更巧一些:temp=a;
a=b;
b=temp;
var a=5,b=10;a=[b,b=a][0];
a=[b,b=a][0] 執行過程:先執行陣列裡兩個表示式b和b=a,作用是把5賦值給b並產生乙個陣列[10,5] ,然後 a=[10,5][0]即 a=10,這樣就完成了交換,不過也借助了無名的陣列,但看起來好想沒借助第三個變數,不過不提倡這樣做,畢竟第一種方式更易懂。5、獲取物件的屬性方式一
var arr=,i=0;方式二var colors=;
for(var key in
colors)
var arr=,i=0;兩種方式都得到了物件colors的屬性(arr=["white", "red", "green", "yellow", "gray", "blue"]), 第二種方式不過搭了 for in 語句的順風車。方式一中for in語句依次從colors獲取乙個屬性賦值給key,只不過在方式二中賦值給了arr[i++]。這個純粹是為了好玩,享受程式設計的樂趣也是程式設計的一部分吧。。var colors=;
for(arr[i++] in colors);
不一樣又不一樣的 木板接水
空地上豎立著n個從左到右排列的木板,它們可以把水擋住,但溢位最邊上木板的水將會流到空地上。已知木板間距都是單位1,現給定每個木板的高度,請求出總共能接住的水量?說明一點,這裡只考慮間距 寬度 和高度,不考慮第三個維度,因此水量是平方單位。木板高度分別是2,1,3,那麼我們可以接住2 2 4平方單位的...
我們不一樣
前輩們因自身實際的種種因素的影響而產生的認知,並不一定適用於我們自身。你可能從來不會去想乙個問題 你的觀點,來自 其實,它們絕大部分來自網路,它們或多或少地蠶食了你的判斷力。未來的路要怎麼走,沒有對與錯。有的,只是每乙個選擇所需要承擔的責任。我不想面臨,後之視今亦猶今之視昔的悲哀。我希望,未來回首,...
我們不一樣
這麼多年的兄弟 有誰比我更了解你 太多太多不容易 磨平了歲月和脾氣 時間轉眼就過去 這身後不散的筵席 只因為我們還在 心留在原地 張開手 需要多大的勇氣 這片天 你我一起撐起 更努力 只為了我們想要的明天 好好的 這份情好好珍惜 我們不一樣 每個人都有不同的境遇 我們在這裡 在這裡等你 我們不一樣 ...