Javascript學習第一集

 Javascript學習第一集

1 , javascript字符集:
javascript採用的是Unicode字符集編碼。
爲什麼要採用這個編碼呢?
原因很簡單,16位的Unicode編碼可以表示地球人的任何書面語言。這是語言 國際化的一個重要特徵。(大家也許見過用中文寫腳本,比如:function 我的函數() {} );
Javascript中每個字符都是用2個字節表示的。(因爲是16位編碼)


2 ,大小寫敏感:
js是一種區分大小寫的語言。
注意下:以前我也犯過的錯誤。
HTML是不區分大小寫的。經常看見有人這麼寫,
<input type=”button” onClick=”a()” /> (這樣寫是對的)
如果放到JS中,就必須使用onclick(小寫哦!)
同時XHTML中也只能使用小寫。
這個我們並不需要太關心,象這種問題,其實都可以自己給自己定一個標準,自己寫程序的時候全部小寫。
另外每行程序後 分號 也是一樣,我們都寫上。

3 ,註釋:
單行:
//   註釋1
/*   註釋2 */
多行:
/* 註釋3
* 註釋3
* 註釋3
*/

4 ,標識符:
標識符就是一個名字,用來命名變量和函數。
規則:第一個字母必須是字母,下劃線(_),或美圓符號($)。
爲什麼第一個字母不能爲數字?
如果第一個爲數字,js很容易就把它當作數字處理了,那麼命名就沒意義了,js規定了後,就很容易的區分了標識符和數字了。

5 ,直接量:
就是程序中直接顯示出來的數據值。
比如:12 , 1.2 , “ hello “ , true , null , [1,2,3,4]
這些都是直接量。

6 ,保留字和關鍵字:
具體是哪些,可以去google.cn。
其實我們只要不取一些特鬱悶的名字,都不會衝突的。

7 ,js數據類型:
3種基本的類型;數字字符串布爾值
2種小數據類型:nullundefined . (爲什麼叫小數據類型?因爲他們只定義了一個值)
1種複合類型:object. (在這個類型中,它的值可以是基本數據類型,也可以是複合類型,比如其他的object. )
注意:在對象中有一個特殊的對象----function.(它是一個可以執行代碼的對象.)

其他的一些對象:
數組:
Date類 : 是日期的對象。
RegExp類: 正則表達式的對象。
Error 類:js中發生錯誤的對象。

8 ,使用數據類型注意的地方:
1):數字:
由於數字有什麼8進制,10進制,16進制等。。。
八進制:var num = 011; //以"0"開頭
十六進制:var num =0x1f; //以"0x"開頭
所以對於js這個都能識別的語言來說,就必須得注意。
alert(377);   // 377
alert(0377);    //255   = 3 * 64 + 7 * 8 + 7 * 1

進行算術運算有個重要的對象:Math.
具體可以去網上下載手冊,查詢裏面的方法。

2個有用的函數:isNaN()和isFinite()
isNaN() : 用於檢查其參數是否是非數字值。// 提示:是非數字哦。(not a number)
document.write(isNaN(0) ) //返回false
document.write(isNaN(5-2) ) //返回false
document.write(isNaN ("Hello") ) //返回true

isFinite(number) 函數用於檢查其參數是否是無窮大。
如果number是有限的,則返回true. 如果 number 是 NaN(非數字)或者是無窮大,則返回false;

2):字符:
‘you’re right’;
這樣寫的話js會誤以爲 在you字母后就結束了,引起錯誤。
所以當遇到這種情況的時候,必須用到轉義。
我們可以這麼寫:
‘you/’re right’;
另外:你可以 google.com搜索 轉義序列表 。

字符串的簡單操作例子:
var a = "cssrain";
var b = a.charAt(a.length-1); // 從字符串a中截取最後一個字符。 輸出:n
var c = a.substring(0 , 2); // 從字符串a中截取第1,2個字符。 輸出:cs
var d = a.indexOf('s');   // 從字符串a中查找第一個s出現的位置。 輸出:1  
從例子可以看出,基數都是從0開始的。
var e = a.substring( a.length-1 ); //可以看出,substring第2個參數不寫的話,
//默認 是到最後。
var f = a.substring( a.length-1 , a.length);//等價於

3):數字跟字符之間的轉換:
數字轉字符:
var number_to_string = number + “ ”; //方法1:添加一個空的字符串。
var number_to_string =String(number); //方法2:使用String()函數。
var number_to_string =number. toString(); //方法3:使用toString()函數。
注:toString()方法默認是以10進制轉換。
如果要使用8進制轉換可以 這麼寫: number. toString(8);

字符轉數字:
var string_to_number = string – 0 ; //方法1: 字符串減去0
var string_to_number = Number(string) ; //方法2:使用Number ()函數。
var string_to_number = parseInt(string) ; //方法3:使用parseInt ()函數。
方法1中不能 用string+0 ; 這樣會導致字符串拼接,而不是類型轉換。
方法2 中的Number函數轉換,比較嚴格。
比如:
var a = "19cssrain86";
var b = Number(a); //輸出NaN.
如果我們使用方法3。
var c = parseInt(a); //輸出 19
可以看出parseInt()會自動忽略非數字的部分。
parseInt()只取整數部分,忽略小數部分。
parseFloat()會把小數部分也取到。
和toString()一樣,parseInt也有進制,默認是10進制。
如果想使用8進制,可以這麼寫: parseInt( “077” , 8 ); // 輸出63 = 7 * 8 + 7
當字符以0開頭的時候,我們必須把 第二個參數 指明,不然js可能會以8進制去轉換。

4):布爾類型:
布爾在數字環境中:true 轉換爲 1 ,false 轉換爲 0 。
在字符環境中:true 轉換爲 “true” ,false 轉換爲 “false” 。
布爾轉換:
var x_to_Boolean = Boolean(x); //方法1:使用Boolean ()函數
var x_to_Boolean = !x; //方法2:使用 感嘆號。

5):函數的定義:
方法1:普通定義
function square(x){
      return x*x;
}
方法2:函數直接量定義
var square = function(x){ return x*x; }   //推薦使用
方法3:構造參數
var square = new Function(“x”,”return x*x;”);   //效率低

6):對象:
如果有一個名爲 cssrain 的對象 , 他有一個高度height的屬性。
那麼我們可以這麼引用:
cssrain.height;
還可以使用關聯數組定義:cssrain[“height”];

創建對象:
方法1:
var point = new Object();
point.x = 3;
point.y = 5;
方法2:使用對象直接量
var point = {x:3 , y:5 }
當然json也可以咯。

對象在字符的環境下,會調用toString()方法。
數字環境下,會調用valueOf()方法。
布爾環境下,非空對象爲true;

7):數組:
常規數組:以非負整數做爲下標。image[0]
關聯數組:以字符做爲下標。如:image[“width”]
js不支持多維數組,但數組裏面可以嵌套數組。

創建數組:
方法1:
var a = new Array();
a[0] = “1”;
a[1] = 2;
a[2] = { x:1, y:3};
方法2:
var a = new Array(“1” , 2 , {x:1,y:3} );
注意下:如果只傳了一個參數;比如var a = new Array(3);
那麼它是表示:3個未定義元素 的 新數組。
方法3:使用數組直接量
var a =[“1” , 2 , {x:1 , y :3 }]; //注意外面的 括號 , 不是花 括號。

8):null和undefined:
null表示無值;
undefined : 使用一個並未聲明的變量,或者使用了已經聲明的變量但未賦值或者使用了一個並不存在的屬性。
undefined==null
如果要區分:
可以使用=== 或者typeof運算符。

9 ,新手常遇到的疑惑:
var s =”you are right”;
var b = s.substring(s.lastIndexOf(“ ”)-1 , s.length);
疑惑:s是對象還是字符串,爲什麼字符串會有方法呢?
回答:s是字符串。之所以有方法 ,是因爲 string類型 有一個相應的對象類(String)。
同樣數字和布爾都有相應的Number , Boolean類。
Js會內部進行相應的包裝對象。String對象就替換了原始的字符串。

總結:
簡單了介紹了js中的一些概念(詞法結構) 和 數據類型(部分)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章