在javascript中轉換成佈爾值的轉換規則是:
1.特殊值undefined和null變成false。
2.數字0和NaN變成false。
3.空字符串變成false。
4.所有其他值變成true。
其中
undefined值有三種情況:
1.你聲明瞭一個變量,但是沒有給它賦值,例如,
<script>
var a;
alert(a);
</script>
<script>
var a;
alert(a);
</script>
2.你訪問瞭一個對象尚未聲明的屬性(在javascript中尼可以把任何東西都看做是對象的一個屬性),例如:
<script>
var test=new Object();
test.a="apple";
test.b="orange";
alert(test.c);
</script>
<script>
var test=new Object();
test.a="apple";
test.b="orange";
alert(test.c);
</script>
其中test.c是未聲明的。
3.你定義瞭函數的參數,但沒有把值傳遞給它,例如:
<script>
function test(ob){
alert(ob);
}
test();
</script>
<script>
function test(ob){
alert(ob);
}
test();
</script>
NaN(非數字值)產生的情況是將不可能轉換成數字的值轉換時產生,例如:
<script>
var string="I am a student";
var number=42;
alert(string* number);
</script>
<script>
var string="I am a student";
var number=42;
alert(string* number);
</script>
javascript的優雅特性之一是:將數值從一種數據類型轉換成到另一種數據類型是很容易的,例如:
<script>
var a=4;
var b='3';
var c=a*b;
alert(c);
</script> www.aiwalls.com
<script>
var a=4;
var b='3';
var c=a*b;
alert(c);
</script>上述代碼中觸發瞭數據類型的轉換,乘法運算符需要數字,所以javascript嘗試盡可能將它轉換成數字,在上述例子中很容易:b被解釋為數字3,於是c變成瞭12.
摘自 cangkukuaimanle的專欄