摘要:反之左操作數值為真,整個表達式的值則依賴于右操作數。以上的這種特性稱為運算符的短路行為,根據這個特性我們可以有效減少語句的使用,還可以增強程序的健壯性。數值上一個空串,會轉換為字符串字符串減會轉換為數值,如失敗則返回。
&&、||運算的高級用法
??在JavaSript中,“&&”運算符除了可以對布爾值進行與(AND)運算之外,還可以對真假值進行與(AND)運算。JavaScript中所有值都可以當成真值和假值,除了false、null、undefined、0、-0、NaN和""其它值都是真值。
??運算符首先讓計算左操作數的值,如果為假,則整個表達式一定是假,因此“&&”這時簡單地返回左操作數的值,不會計算右操作數的值。反之左操作數值為真,整個表達式的值則依賴于右操作數。所以會繼續計算右操作數的值,并將其返回做為整個表達式的計算結果。
??以上的這種特性稱為“&&”運算符的 “短路”(short circuiting)行為,根據這個特性我們可以有效減少if語句的使用,還可以增強程序的健壯性。
//減少if使用 if(a==b) stop();//只有a==b時才調用stop() (a==b) && stop();//可以實現同上的效果 a==b && stop();//也同上實現同上的效果(關系運算的優先級是高于邏輯運算的) //增加程序健壯性 function a(o){ //我們希望調用函數a事傳遞過來的實參是一個對象 //當對象包含一個值不為假的屬性x時,我們執行一段相關代碼 ) if(o&&o.x){ //但是我們有時無法控制傳遞過來的實參是什么 //如果是null或者沒有傳遞實參過來(undefined) //這時再對o進行屬性訪問運算,就會拋出類型異常 //這時使用“&&”運算符進行一下短路處理 //當實參是null或者undefined就不會拋出異常了 //null和undefined為假值,根據短路特性右操作數不會被計算 /*執行相關代碼*/ }else{ /*這里不可以添加一些友好的殺錯誤提示*/ } }
??“||”運算符和“&&”一樣也有更復雜的行為。它會首先計算左操作數的值,如果為真,直接返回這個真值。否則再計算右操作數的值,并返回這個表達式的計算結果。利用這一特性,可以給函數參數設置默認值。
//copy函數實現將o的成員屬性復制到p中,并返回p function copy(o,p){ p=p||{};//如果向參數p沒有傳入任何對象,則使用一個新創建的對象 //函數實現相關代碼 }使用Array.join()生成重復的字串
??有時我們需要生成重復的字串,比如需要生成一個包含100個div標簽對的字符串。大家更多的想到的是使用循環來實現。其實還有更簡單的方式。
var str=new Array(101).join("");//就是這么簡單使用 setXXX()方法安心實現日期加法
??有時需要對日期時間進行一些加減運算,除了將日期時間轉換毫秒再進行運算之外,我們還可以使用日期的方法更方便的進行日期時間加減運算操作。
var now=new Date("2017-06-11 23:00:00");//now:Mon Jun 11 2017 00:21:47 GMT+0800 (中國標準時間) now.setDate(now.getDate()+10); //加十天 //now:Wed Jun 21 2017 23:00:00 GMT+0800 (中國標準時間) now.setDate(now.getDate()-30) //減三十天 //Mon May 22 2017 23:00:00 GMT+0800 (中國標準時間) now.setSeconds(now.getSeconds()+300); //加300s //Mon May 22 2017 23:05:00 GMT+0800 (中國標準時間) //還可以 //setMonth() 設置月份 //setFullYear() 設置年份 //setHours() 設置小時 //setMinutes() 設置分鐘 //setMilliseconds() 設置毫秒巧用變量類型隱式轉換
??JavaScript變量類型轉換有相應的方法,但我們也可以使用隱式轉換來實現類型轉換。也需要了解這些隱式的類型轉換才能讓程序達到你想要的運行效果。
1+""; //數值+上一個空串,會轉換為字符串 "1.5"-0;//字符串減1會轉換為數值,如失敗則返回NaN。"*1"也可以實現
??
暫時這些,以后記起啥了再來補充。也歡迎大家留言補充。
??
??
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87050.html
摘要:的幾個小技巧盡早將無效的用例盡早返回,避免意外和不必要的代碼處理。要添加一種新的就需要再添加一個分支判斷多重判斷時使用或者,避免過長邏輯判斷改進后一次循環兩個數組 JavaScript 的幾個小技巧 1. 盡早 return function transformData(rawData) { // check if no data if (!rawData) { ret...
摘要:我們知道在中多了幾個對數組使用的新特性。這里我們舉兩個實際的例子吧例子一仔細體會。例子二看到了吧,可以直接在循環中指定變量,然后在循環體中來使用,是不是很簡單好了本文就這些內容了,歡迎繼續關注。更多知識,請前往 我們知道在PHP7.1中多了幾個對數組使用的新特性。 這里我們舉兩個實際的例子吧: 例子一: // PHP 7.1+ $options = [enabled => true, ...
摘要:利用的一些輔助函數進行類型轉換的函數和復雜的自定函數之間有一個中間段,那就是的一些輔助函數。這些輔助函數對于某些特定數據類型的轉換非常有用如。 利用Pandas進行數據分析時,確保使用正確的數據類型是非常重要的,否則可能會導致一些不可預知的錯誤發生。筆者使用Pandas已經有一段時間了,但是還是會在一些小問題上犯錯誤,追根溯源發現在對數據進行操作時某些特征列并不是Pandas所能處理的...
摘要:短信發送平臺現在是各行業領域中使用相對較為廣泛的一種推廣方式,企業在有營銷推廣需求的時候,都是會依靠短信平臺。短信發送平臺發送推廣短信的技巧短信平臺發送短信小技巧 短信發送平臺現在是各行業領域中使用相對較為廣泛的一種推廣方式,企業在有營銷推廣需求的時候,都是會依靠短信平臺。為何短信發送會受到如此重視呢?這主要是由于短信發送擁有的優勢可以解決諸多企業推廣所面臨的諸...
摘要:數獨技巧直觀法候選數法相關二十格一個數字只與其所在行列及小九宮格的二十格相關我的思路精心設計了有效性判定函數,最多一次遍歷個小單元格就能做出方案的有效性判定。 看《算法的樂趣》,試著用非遞歸窮舉來解數獨,看效率如何! 數獨規則 數獨游戲,經典的為9×9=81個單元格組成的九宮格,同時也形成了3×3=9個小九宮格,要求在81個小單元格中填入數字1~9,并且數字在每行每列及每個小九宮格中都...
閱讀 772·2021-10-09 09:58
閱讀 641·2021-08-27 16:24
閱讀 1723·2019-08-30 14:15
閱讀 2384·2019-08-30 11:04
閱讀 2067·2019-08-29 18:43
閱讀 2170·2019-08-29 15:20
閱讀 2716·2019-08-26 12:20
閱讀 1616·2019-08-26 11:44