最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript if條件判斷方法小結(jié)

 更新時(shí)間:2014年05月17日 01:47:28   作者:  
今天在為網(wǎng)站增加一些代碼功能的時(shí)候,需要用到if條件判斷,發(fā)現(xiàn)簡寫方法忘了,這里特整理下

條件語句用于基于不同的條件來執(zhí)行不同的動(dòng)作。

條件語句

通常在寫代碼時(shí),您總是需要為不同的決定來執(zhí)行不同的動(dòng)作。您可以在代碼中使用條件語句來完成該任務(wù)。

在 JavaScript 中,我們可使用以下條件語句:

•if 語句 - 只有當(dāng)指定條件為 true 時(shí),使用該語句來執(zhí)行代碼
•if...else 語句 - 當(dāng)條件為 true 時(shí)執(zhí)行代碼,當(dāng)條件為 false 時(shí)執(zhí)行其他代碼
•if...else if....else 語句 - 使用該語句來選擇多個(gè)代碼塊之一來執(zhí)行
•switch 語句 - 使用該語句來選擇多個(gè)代碼塊之一來執(zhí)行

If 語句

只有當(dāng)指定條件為 true 時(shí),該語句才會(huì)執(zhí)行代碼。

語法

復(fù)制代碼 代碼如下:

if (條件)
  {
  只有當(dāng)條件為 true 時(shí)執(zhí)行的代碼
  }

注意:請使用小寫的 if。使用大寫字母(IF)會(huì)生成 JavaScript 錯(cuò)誤!

實(shí)例
當(dāng)時(shí)間小于 20:00 時(shí),生成一個(gè)“Good day”問候:

復(fù)制代碼 代碼如下:

if (time<20)
  {
  x="Good day";
  }

x 的結(jié)果是:

Good day

親自試一試

請注意,在這個(gè)語法中,沒有 ..else..。您已經(jīng)告訴瀏覽器只有在指定條件為 true 時(shí)才執(zhí)行代碼。
If...else 語句
請使用 if....else 語句在條件為 true 時(shí)執(zhí)行代碼,在條件為 false 時(shí)執(zhí)行其他代碼。

語法

復(fù)制代碼 代碼如下:

if (條件)
  {
  當(dāng)條件為 true 時(shí)執(zhí)行的代碼
  }
else
  {
  當(dāng)條件不為 true 時(shí)執(zhí)行的代碼
  }
 

實(shí)例
當(dāng)時(shí)間小于 20:00 時(shí),將得到問候 "Good day",否則將得到問候 "Good evening"。

復(fù)制代碼 代碼如下:

if (time<20)
  {
  x="Good day";
  }
else
  {
  x="Good evening";
  }
 

x 的結(jié)果是:

Good day

親自試一試
If...else if...else 語句
使用 if....else if...else 語句來選擇多個(gè)代碼塊之一來執(zhí)行。

語法

復(fù)制代碼 代碼如下:

if (條件 1)
  {
  當(dāng)條件 1 為 true 時(shí)執(zhí)行的代碼
  }
else if (條件 2)
  {
  當(dāng)條件 2 為 true 時(shí)執(zhí)行的代碼
  }
else
  {
  當(dāng)條件 1 和 條件 2 都不為 true 時(shí)執(zhí)行的代碼
  }

實(shí)例
如果時(shí)間小于 10:00,則將發(fā)送問候 "Good morning",否則如果時(shí)間小于 20:00,則發(fā)送問候 "Good day",否則發(fā)送問候 "Good evening":

復(fù)制代碼 代碼如下:

if (time<10)
  {
  x="Good morning";
  }
else if (time<20)
  {
  x="Good day";
  }
else
  {
  x="Good evening";
  }

x 的結(jié)果是:

Good morning

在javascript中,哪些值能作為if的條件呢

1、布爾變量true/false
2、數(shù)字非0,非NaN/ (0 或NaN)

見下面的例子,莫以為負(fù)數(shù)就以為if語句為假了。

復(fù)制代碼 代碼如下:

var i = -1;
if(i){
 alert('here');
}else{
 alert('test is ok!');
}

3、對象非null/(null或undefined)
4、字符串非空串(“”)/空串("")

綜上所述,對于字符串,不用寫一大堆if(str!=null && str!=undefined && str !=''), 只要用一句

復(fù)制代碼 代碼如下:

if(!str){
    //do something
}

就可以了。

對于數(shù)字的非空判斷,則要考慮使用isNaN()函數(shù),NaN不和任何類型數(shù)據(jù)相等,包括它本身,只能用isNaN()判斷。對于數(shù)字類型,if(a)語句中的a為0時(shí)if(a)為假,非0時(shí)if(a)為真

復(fù)制代碼 代碼如下:

var b;
var a = 0;
a = a + b;
if(a){
 alert('1');
}else{
 alert('2');
}
if(isNaN(a)){
 alert('a is NaN');
}

javascript教程:關(guān)于if語句優(yōu)化的方法 if簡寫

UglifyJS是一個(gè)對javascript進(jìn)行壓縮和美化的工具,在它的文檔說明中,我看到了幾種關(guān)于if語句優(yōu)化的方法。盡管我還沒使用它去做一些嘗試性的測試,但從這里可以看到它的確對js作了美化的工作。也許有人認(rèn)為if語句就那么簡單,能優(yōu)化到什么程度?但是看看以下的幾種方式,你也許會(huì)改變看法。

一、使用常見的三元操作符

if (foo) bar(); else baz(); ==> foo?bar():baz();
if (!foo) bar(); else baz(); ==> foo?baz():bar();
if (foo) return bar(); else return baz(); ==> return foo?bar():baz();

對于以上使用三元操作符來優(yōu)化if語句你肯定不會(huì)陌生,或許你經(jīng)常使用它。

腳本之家給出的例子:

復(fù)制代碼 代碼如下:

<script>
var i=9
var ii=(i>8)?100:9;
alert(ii);
</script>

輸出結(jié)果:

100

二、使用and(&&)和or(||)運(yùn)算符

if (foo) bar(); ==> foo&&bar();
if (!foo) bar(); ==> foo||bar();

老實(shí)說,我并沒有這樣去寫過代碼,這種寫法我在學(xué)習(xí)《鳥哥的 Linux 私房菜》時(shí)看到過,但我并沒想到在js中實(shí)現(xiàn)它。

三、省略大括號{}

if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}

這種寫法你我都很熟悉,但我建議在代碼優(yōu)化的時(shí)候這樣做,或者交給UglifyJS幫你去解決。畢竟少一個(gè)大括號,代碼的可閱讀性并不高。

寫到這里,我想到j(luò)Query之父在《精通 JavaScript》中的一個(gè)獲取HTML元素屬性的方法。

function getAttr(el, attrName){
var attr = {'for':'htmlFor', 'class':'className'}[attrName] || attrName;
};

如果我們不這樣寫,可能我們需借助于兩個(gè)if語句來進(jìn)行處理,而上面的代碼不僅簡潔有效,而且可閱讀性強(qiáng)。

仔細(xì)想想,好些時(shí)候我們都能找到解決問題的有效途徑,但關(guān)鍵在于我們是否用心去尋找一種更好的途徑。

【javascript技巧】if(x==null)簡寫

if(x==null)或if (typeof (x) == 'undefined')可以簡寫為if(!x),未驗(yàn)證。

反之if(x)表示x非空

判斷對象是否存在

復(fù)制代碼 代碼如下:

if(document.form1.softurl9){
//判斷是否存在softurl9,防止js出錯(cuò)
}

復(fù)制代碼 代碼如下:

if(document.getElementById("softurl9")){
//判斷是否存在softurl9,防止js出錯(cuò)
}

相關(guān)文章

最新評論

枣强县| 万荣县| 元谋县| 北流市| 南陵县| 手游| 胶南市| 虹口区| 独山县| 诸暨市| 溧阳市| 丹阳市| 札达县| 进贤县| 汝州市| 达州市| 丰都县| 雷波县| 佛山市| 常德市| 柞水县| 全南县| 分宜县| 齐河县| 黄石市| 炎陵县| 东乡县| 安远县| 深泽县| 黄陵县| 天峻县| 攀枝花市| 克什克腾旗| 秭归县| 汝阳县| 北海市| 宝山区| 稷山县| 通河县| 宁化县| 行唐县|