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