成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript幾個(gè)小技巧

Apollo / 1621人閱讀

摘要:反之左操作數(shù)值為真,整個(gè)表達(dá)式的值則依賴于右操作數(shù)。以上的這種特性稱為運(yùn)算符的短路行為,根據(jù)這個(gè)特性我們可以有效減少語(yǔ)句的使用,還可以增強(qiáng)程序的健壯性。數(shù)值上一個(gè)空串,會(huì)轉(zhuǎn)換為字符串字符串減會(huì)轉(zhuǎn)換為數(shù)值,如失敗則返回。

&&、||運(yùn)算的高級(jí)用法

??在JavaSript中,“&&”運(yùn)算符除了可以對(duì)布爾值進(jìn)行與(AND)運(yùn)算之外,還可以對(duì)真假值進(jìn)行與(AND)運(yùn)算。JavaScript中所有值都可以當(dāng)成真值和假值,除了false、null、undefined、0、-0、NaN和""其它值都是真值。

??運(yùn)算符首先讓計(jì)算左操作數(shù)的值,如果為假,則整個(gè)表達(dá)式一定是假,因此“&&”這時(shí)簡(jiǎn)單地返回左操作數(shù)的值,不會(huì)計(jì)算右操作數(shù)的值。反之左操作數(shù)值為真,整個(gè)表達(dá)式的值則依賴于右操作數(shù)。所以會(huì)繼續(xù)計(jì)算右操作數(shù)的值,并將其返回做為整個(gè)表達(dá)式的計(jì)算結(jié)果。

??以上的這種特性稱為“&&”運(yùn)算符的 “短路”(short circuiting)行為,根據(jù)這個(gè)特性我們可以有效減少if語(yǔ)句的使用,還可以增強(qiáng)程序的健壯性。

    //減少if使用
    if(a==b) stop();//只有a==b時(shí)才調(diào)用stop()
    (a==b) && stop();//可以實(shí)現(xiàn)同上的效果
    a==b && stop();//也同上實(shí)現(xiàn)同上的效果(關(guān)系運(yùn)算的優(yōu)先級(jí)是高于邏輯運(yùn)算的)
    
    //增加程序健壯性
    
    function a(o){
        //我們希望調(diào)用函數(shù)a事傳遞過(guò)來(lái)的實(shí)參是一個(gè)對(duì)象
        //當(dāng)對(duì)象包含一個(gè)值不為假的屬性x時(shí),我們執(zhí)行一段相關(guān)代碼
)
        if(o&&o.x){
            //但是我們有時(shí)無(wú)法控制傳遞過(guò)來(lái)的實(shí)參是什么
            //如果是null或者沒(méi)有傳遞實(shí)參過(guò)來(lái)(undefined)
            //這時(shí)再對(duì)o進(jìn)行屬性訪問(wèn)運(yùn)算,就會(huì)拋出類型異常
            //這時(shí)使用“&&”運(yùn)算符進(jìn)行一下短路處理
            //當(dāng)實(shí)參是null或者undefined就不會(huì)拋出異常了
            //null和undefined為假值,根據(jù)短路特性右操作數(shù)不會(huì)被計(jì)算
            
            /*執(zhí)行相關(guān)代碼*/
            
        }else{
            /*這里不可以添加一些友好的殺錯(cuò)誤提示*/
        }
    }
    

??“||”運(yùn)算符和“&&”一樣也有更復(fù)雜的行為。它會(huì)首先計(jì)算左操作數(shù)的值,如果為真,直接返回這個(gè)真值。否則再計(jì)算右操作數(shù)的值,并返回這個(gè)表達(dá)式的計(jì)算結(jié)果。利用這一特性,可以給函數(shù)參數(shù)設(shè)置默認(rèn)值。

    //copy函數(shù)實(shí)現(xiàn)將o的成員屬性復(fù)制到p中,并返回p
    function copy(o,p){
        p=p||{};//如果向參數(shù)p沒(méi)有傳入任何對(duì)象,則使用一個(gè)新創(chuàng)建的對(duì)象
        //函數(shù)實(shí)現(xiàn)相關(guān)代碼
    } 
使用Array.join()生成重復(fù)的字串

??有時(shí)我們需要生成重復(fù)的字串,比如需要生成一個(gè)包含100個(gè)div標(biāo)簽對(duì)的字符串。大家更多的想到的是使用循環(huán)來(lái)實(shí)現(xiàn)。其實(shí)還有更簡(jiǎn)單的方式。

    var str=new Array(101).join("
");//就是這么簡(jiǎn)單
使用 setXXX()方法安心實(shí)現(xiàn)日期加法

??有時(shí)需要對(duì)日期時(shí)間進(jìn)行一些加減運(yùn)算,除了將日期時(shí)間轉(zhuǎn)換毫秒再進(jìn)行運(yùn)算之外,我們還可以使用日期的方法更方便的進(jìn)行日期時(shí)間加減運(yùn)算操作。

var now=new Date("2017-06-11 23:00:00");//now:Mon Jun 11 2017 00:21:47 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
now.setDate(now.getDate()+10);
//加十天
//now:Wed Jun 21 2017 23:00:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
now.setDate(now.getDate()-30)
//減三十天
//Mon May 22 2017 23:00:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
now.setSeconds(now.getSeconds()+300);
//加300s
//Mon May 22 2017 23:05:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
//還可以
//setMonth()    設(shè)置月份
//setFullYear()    設(shè)置年份
//setHours()    設(shè)置小時(shí)
//setMinutes()    設(shè)置分鐘
//setMilliseconds()    設(shè)置毫秒
巧用變量類型隱式轉(zhuǎn)換

??JavaScript變量類型轉(zhuǎn)換有相應(yīng)的方法,但我們也可以使用隱式轉(zhuǎn)換來(lái)實(shí)現(xiàn)類型轉(zhuǎn)換。也需要了解這些隱式的類型轉(zhuǎn)換才能讓程序達(dá)到你想要的運(yùn)行效果。

1+""; //數(shù)值+上一個(gè)空串,會(huì)轉(zhuǎn)換為字符串
"1.5"-0;//字符串減1會(huì)轉(zhuǎn)換為數(shù)值,如失敗則返回NaN。"*1"也可以實(shí)現(xiàn)

??
暫時(shí)這些,以后記起啥了再來(lái)補(bǔ)充。也歡迎大家留言補(bǔ)充。
??
??

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/87050.html

相關(guān)文章

  • JavaScript個(gè)小技巧

    摘要:的幾個(gè)小技巧盡早將無(wú)效的用例盡早返回,避免意外和不必要的代碼處理。要添加一種新的就需要再添加一個(gè)分支判斷多重判斷時(shí)使用或者,避免過(guò)長(zhǎng)邏輯判斷改進(jìn)后一次循環(huán)兩個(gè)數(shù)組 JavaScript 的幾個(gè)小技巧 1. 盡早 return function transformData(rawData) { // check if no data if (!rawData) { ret...

    arashicage 評(píng)論0 收藏0
  • 關(guān)于PHP數(shù)組的個(gè)小技巧

    摘要:我們知道在中多了幾個(gè)對(duì)數(shù)組使用的新特性。這里我們舉兩個(gè)實(shí)際的例子吧例子一仔細(xì)體會(huì)。例子二看到了吧,可以直接在循環(huán)中指定變量,然后在循環(huán)體中來(lái)使用,是不是很簡(jiǎn)單好了本文就這些內(nèi)容了,歡迎繼續(xù)關(guān)注。更多知識(shí),請(qǐng)前往 我們知道在PHP7.1中多了幾個(gè)對(duì)數(shù)組使用的新特性。 這里我們舉兩個(gè)實(shí)際的例子吧: 例子一: // PHP 7.1+ $options = [enabled => true, ...

    chenjiang3 評(píng)論0 收藏0
  • Pandas數(shù)據(jù)類型轉(zhuǎn)換的個(gè)小技巧

    摘要:利用的一些輔助函數(shù)進(jìn)行類型轉(zhuǎn)換的函數(shù)和復(fù)雜的自定函數(shù)之間有一個(gè)中間段,那就是的一些輔助函數(shù)。這些輔助函數(shù)對(duì)于某些特定數(shù)據(jù)類型的轉(zhuǎn)換非常有用如。 利用Pandas進(jìn)行數(shù)據(jù)分析時(shí),確保使用正確的數(shù)據(jù)類型是非常重要的,否則可能會(huì)導(dǎo)致一些不可預(yù)知的錯(cuò)誤發(fā)生。筆者使用Pandas已經(jīng)有一段時(shí)間了,但是還是會(huì)在一些小問(wèn)題上犯錯(cuò)誤,追根溯源發(fā)現(xiàn)在對(duì)數(shù)據(jù)進(jìn)行操作時(shí)某些特征列并不是Pandas所能處理的...

    luckyw 評(píng)論0 收藏0
  • 短信發(fā)送平臺(tái)的推廣技巧有哪些?3個(gè)小技巧要記牢!

    摘要:短信發(fā)送平臺(tái)現(xiàn)在是各行業(yè)領(lǐng)域中使用相對(duì)較為廣泛的一種推廣方式,企業(yè)在有營(yíng)銷推廣需求的時(shí)候,都是會(huì)依靠短信平臺(tái)。短信發(fā)送平臺(tái)發(fā)送推廣短信的技巧短信平臺(tái)發(fā)送短信小技巧 短信發(fā)送平臺(tái)現(xiàn)在是各行業(yè)領(lǐng)域中使用相對(duì)較為廣泛的一種推廣方式,企業(yè)在有營(yíng)銷推廣需求的時(shí)候,都是會(huì)依靠短信平臺(tái)。為何短信發(fā)送會(huì)受到如此重視呢?這主要是由于短信發(fā)送擁有的優(yōu)勢(shì)可以解決諸多企業(yè)推廣所面臨的諸...

    ACb0y 評(píng)論0 收藏0
  • 數(shù)獨(dú)求解(javascript實(shí)現(xiàn))

    摘要:數(shù)獨(dú)技巧直觀法候選數(shù)法相關(guān)二十格一個(gè)數(shù)字只與其所在行列及小九宮格的二十格相關(guān)我的思路精心設(shè)計(jì)了有效性判定函數(shù),最多一次遍歷個(gè)小單元格就能做出方案的有效性判定。 看《算法的樂(lè)趣》,試著用非遞歸窮舉來(lái)解數(shù)獨(dú),看效率如何! 數(shù)獨(dú)規(guī)則 數(shù)獨(dú)游戲,經(jīng)典的為9×9=81個(gè)單元格組成的九宮格,同時(shí)也形成了3×3=9個(gè)小九宮格,要求在81個(gè)小單元格中填入數(shù)字1~9,并且數(shù)字在每行每列及每個(gè)小九宮格中都...

    Berwin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<