js中, 用變量或對象作為if或其他條件的表達式


源: 因為js是弱語言, 就體現在js的變量是弱類型的, 在js中所有變量類型聲明都用var, 而在其他強類型語言中,如java/c,必須有強制類型轉換和類型檢查才能編譯通過等,

但是: 弱語言也有優勢: 起碼在寫js條件判斷表達式時可以直接用變量或者對象來判斷

來人, 上代碼:

// 代碼很簡潔, 先討論當變量a為不同值時的條件表達式結果
	var a; // 只聲明變量 
	if (a) {
			alert('true');
		} else {
			alert('false');
		}

  

 

 

a的值 說明 表達式 if(a)的結果: 
var a;  只聲明不賦值  false
 a = '' || a = "" || a = null || a = undefined  當a為空串或null或undefined時,評估結果為false  false
 a = 'somevalue', ...  當為a賦值后, 評估結果true  
 a = ' ' || a = " "  * a為空格, 空格也是一個字符, 評估結果為true  
 a = 0 || a = 0.0  * 當a為數值0或0.0,0.00,評估結果為false,其他數值一律為true  
 a = f  當a為函數對象, 且不帶括號, 該函數對象定義了評估結果就為true,否則為false   
 a = f()  當a為函數對象, 且帶括號, 則先執行函數, 按照函數的返回結果來作為評估結果, 若無返回結果: 則為false,因為默認返回undefined  
a = obj.pro1, a = obj.f1() 當a為對象的屬性或方法時, 按照a為單獨帶隊屬性或方法時的一樣進行評估  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM