上篇文章講了
js
中的
傳值和傳址
和
函數(shù)的作用域
.
這章我們來(lái)探討
js
中
的變量,表達(dá)式,和運(yùn)算符
還有一些
js
語(yǔ)句。
升級(jí)中
……
?
1,
表達(dá)式:
最簡(jiǎn)單的表達(dá)式:直接量或者變量名。
var a =1;
直接量表達(dá)式的值:本身。
變量表達(dá)式的值:該變量所存放或引用的值。
?
2 ,
運(yùn)算符:
一元運(yùn)算符:
比如
?
- 3
二元運(yùn)算符:
比如
?3+4
三元運(yùn)算符:
比如
?
??? :???
?
新手常遇到的問(wèn)題:
遞增運(yùn)算符:
比如:
i? =? 1 ;
j? = ++ i ; //
前遞增運(yùn)算,即先對(duì)運(yùn)算數(shù)進(jìn)行遞增,然后再去計(jì)算。
//
輸出
?? i? =2;??? j=2 ;
?
i? =? 1 ;
j? = ?i ++; //
后遞增運(yùn)算,即先去計(jì)算,然后再對(duì)運(yùn)算數(shù)進(jìn)行遞增。
//
輸出
?? i? =2;??? j=1 ;
?
3,
相等運(yùn)算符:
=? ?
:
?
賦值運(yùn)算符;
==?
:
相等運(yùn)算符;
===
:
等同運(yùn)算符;
值
NaN
永遠(yuǎn)不會(huì)與任何值相等,包括自己。
alert(NaN == NaN); //false? NaN
意思為
Not ?a ?Number
要檢測(cè)一個(gè)值是否是
NaN,
可以使用全局函數(shù)
isNaN();
?
另外新手要注意:
var a =[1,2,3];
var b =[1,2,3];
document.write(a==b); //
輸出
false .(
這個(gè)其實(shí)是
第一章講的內(nèi)容。
)
?????????????????? //
雖然值相同,類型相同,但址不同。
--------------------------------------------------------
var a =[1,2,3];
var b = a ;
var c = a ;
document.write(b===c);//
輸出
true;
--------------------------------------------------------
var a = "1";
var b = true ;
document.write(a==b); ?//
輸出
true
document.write(a===b); //
輸出
false? ?
;
值相同,
類型不同
?
4,
比較運(yùn)算符:
要注意的就是字符串是進(jìn)行琢個(gè)比較。
而且會(huì)區(qū)分大小寫(xiě)。
如果你的需求是不區(qū)分大小寫(xiě):
可以使用
String.toLowerCase() //
純小寫(xiě)
String.toUpperCase()? //
純大寫(xiě)
?
轉(zhuǎn)換后
,然后再去比較
.
?
5, in
運(yùn)算符:
要注意的是:左邊的值是其右邊對(duì)象的屬性。
比如:
var? a? = { x : 1? , y : 2 };
var? b? = “x” in a ;?? //? true
var? c? = “toString” in a ;? //? true? .
左邊的值是其右邊對(duì)象的屬性。
?
6 instanceof
運(yùn)算符:
要注意的是:左邊的運(yùn)算數(shù)是一個(gè)對(duì)象,右邊的運(yùn)算數(shù)是對(duì)象類的名字。
比如:
var a = new Date()
a instanceof Date; // true
a instanceof Object ; // true
a instanceof Number ; // false
?
7, 3
元條件運(yùn)算符:
要注意的是:第一個(gè)運(yùn)算數(shù)必須是一個(gè)布爾值。
X > 0 ? 3 : 2 ;
?
8, typeof
運(yùn)算符:
要注意的是:由于
typeof
對(duì)所有的對(duì)象和數(shù)組都是返回
object;
所以它只能區(qū)分對(duì)象和原始數(shù)據(jù)類型時(shí)才有用。
要區(qū)別一種對(duì)象類型和另一種對(duì)象類型,可以使用
instanceof
和
constructor
屬性。
?
9, delete
運(yùn)算符:
要注意的是:并不是所有的屬性和變量都能刪除。
比如:
用
var
語(yǔ)句聲明的變量不能被刪除。
另外
;
當(dāng)
delete
刪除一個(gè)不存在的屬性時(shí),返回
true
;(
^_^
,這個(gè)比較搞笑。)
var a = 1;
alert(? delete a? );? //
返回
false
alert(? delete a.x? );? //
返回
true
還有一個(gè)應(yīng)該注意:
Delete
所能影響的只是屬性值,并不能影響被這些屬性引用的對(duì)象。
比如:
var my =new Object();
my.height = new Date();
my.width = my.height;
delete my.height ;
document.write(my.width);// my.width
仍然是引用
Date
對(duì)象
?
10,void
運(yùn)算符:
void
的一個(gè)用途:
專門(mén)生成
undefined
值、
alert( void(0) )
alert( void(1) ) //
都輸出
undefined
這里的
undefined
實(shí)際是
void()
運(yùn)算后的
值
。
考慮到向后兼容性,用表達(dá)式
void 0
比使用
undefined
屬性更有用
.
?
11,
異常處理:
拋出異常:
throw
捕捉異常:
try / catch / finally
If(x>0)
? throw new Error(“x must not be negative!”);
?
try{
}
catch(e){
}
finally{? //
總是被最后執(zhí)行
?
。通常進(jìn)行
消除操作。
}
?
12,with
語(yǔ)句:
?
? var form =? frame[1].document.forms[0];
?? form.name.value = “ “;
?? form.address.value =” “;
這樣可以使用
with
語(yǔ)句代替
;
比如:
with(frame[1].document.forms[0])
{
?? name.value = “ “;
?? address.value =” “;
?
}
當(dāng)然書(shū)上強(qiáng)烈不推薦使用
with
,
呵呵。效率低,問(wèn)題多多。
?
總結(jié):
主要介紹了
js
中的變量,表達(dá)式,和運(yùn)算符
還有一些
js
語(yǔ)句。
如果還有不懂,可以
google
搜索資料
. (
學(xué)會(huì)使用搜索,你也就很厲害了。
)
轉(zhuǎn)眼間,學(xué)了
3
章了,
不知道大家感覺(jué)如何。
?
將就些吧,學(xué)習(xí)最重要的還是靠自己,不懂或者有疑問(wèn)的地方馬上
寫(xiě)例子測(cè)試,驗(yàn)證。或者查資料。
?
這樣可能印象會(huì)更深入些。
?
加油
…….
?
posted on 2008-10-15 14:29
JasonChou 閱讀(215)
評(píng)論(0) 編輯 收藏 所屬分類:
html