Javascript學習【類型轉化問題總匯】

來源:互聯網
上載者:User

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種小資料類型:null 和 undefined . (為什麼叫小資料類型?因為他們只定義了一個值)
1種複合類型:object. (在這個類型中,它的值可以是基礎資料型別 (Elementary Data Type),也可以是複合類型,比如其他的object. )
注意:在對象中有一個特殊的對象----function.(它是一個可以執行代碼的對象.)

其他的一些對象:
數組:
Date類 : 是日期的對象。
RegExp類: Regex的對象。
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()方法。
布爾環境下,非Null 物件為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中的一些概念(詞法結構) 和 資料類型(部分)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.