隨筆 - 59  文章 - 70  trackbacks - 0
          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          積分與排名

          • 積分 - 174133
          • 排名 - 340

          最新評論

          閱讀排行榜

          評論排行榜

          以前沒徹徹底底的看過js相關(guān)的學(xué)習(xí)資料,覺得很有必要再看看基礎(chǔ)的東西。一起來學(xué)習(xí)。

          1 , javascript
          字符集:

          javascript 采用的是 Unicode 字符集編碼。

          為什么要采用這個編碼呢?

          原因很簡單, 16 位的 Unicode 編碼可以表示地球人的任何書面語言。這是語言 國際化的一個重要特征。 ( 大家也許見過用中文寫腳本,比如: function 我的函數(shù) () {}? );

          Javascript 中每個字符都是用 2 個字節(jié)表示的。(因為是 16 位編碼)

          ?

          ?

          2 , 大小寫敏感:

          js 是一種區(qū)分大小寫的語言。

          注意下:以前我也犯過的錯誤。

          HTML 是不區(qū)分大小寫的。經(jīng)常看見有人這么寫 ,

          <input type=”button” onClick=”a()” /> (這樣寫是對的)

          如果放到 JS 中,就必須使用 onclick (小寫哦!)

          同時 XHTML 中也只能使用小寫。

          這個我們并不需要太關(guān)心,象這種問題,其實都可以自己給自己定一個標(biāo)準(zhǔn),自己寫程序的時候全部小寫。

          另外每行程序后 分號 也是一樣,我們都寫上。

          ?

          3 , 注釋:

          單行:

          //?? 注釋 1

          /*?? 注釋 2? */?

          多行:

          /*? 注釋 3

          *? 注釋 3

          *? 注釋 3

          */

          ?

          4 , 標(biāo)識符:

          標(biāo)識符就是一個名字,用來命名變量和函數(shù)。

          規(guī)則:第一個字母必須是字母,下劃線 (_) ,或美圓符號 ($)

          為什么第一個字母不能為數(shù)字?

          如果第一個為數(shù)字, js 很容易就把它當(dāng)作數(shù)字處理了,那么命名就沒意義了, js 規(guī)定了后,就很容易的區(qū)分了標(biāo)識符和數(shù)字了。

          ?

          5 , 直接量:

          就是程序中直接顯示出來的數(shù)據(jù)值。

          比如: 12? , 1.2? , “ hello “ , true ,? null? , [1,2,3,4]

          這些都是直接量。

          ?

          6 , 保留字和關(guān)鍵字:

          具體是哪些,可以去 google.cn

          其實我們只要不取一些特郁悶的名字,都不會沖突的。

          ?

          7 ,js 數(shù)據(jù)類型:

          3 種基本的類型;數(shù)字,字符串和布爾值。

          2 種小數(shù)據(jù)類型: null undefined . ( 為什么叫小數(shù)據(jù)類型?因為他們只定義了一個值 )

          1 種復(fù)合類型: object. ( 在這個類型中,它的值可以是基本數(shù)據(jù)類型,也可以是復(fù)合類型,比如其他的 object. )

          注意:在對象中有一個特殊的對象 ----function.( 它是一個可以執(zhí)行代碼的對象 .)

          ?

          其他的一些對象 :

          數(shù)組:

          Date 是日期的對象。

          RegExp 類: 正則表達式的對象。

          Error 類: js 中發(fā)生錯誤的對象。

          ?

          8 , 使用數(shù)據(jù)類型注意的地方:

          1): 數(shù)字:

          由于數(shù)字有什么 8 進制, 10 進制, 16 進制等。。。

          八進制: var num = 011; // "0" 開頭

          十六進制: var num =0x1f; // "0x" 開頭

          所以對于 js 這個都能識別的語言來說,就必須得注意。

          alert(377);?? // 377

          alert(0377);??? //255?? =? 3 * 64 + 7 * 8? + 7 * 1

          ?

          進行算術(shù)運算有個重要的對象: Math.

          具體可以去網(wǎng)上下載手冊,查詢里面的方法。

          ?

          2 個有用的函數(shù): isNaN() isFinite()

          isNaN() : 用于檢查其參數(shù)是否是數(shù)字值。 // 提示:是非數(shù)字哦。 (not a number)

          document.write( isNaN (0) )? // 返回 false

          document.write( isNaN (5-2) ) // 返回 false

          document.write( isNaN ("Hello") ) // 返回 true

          ?

          isFinite(number) 函數(shù)用于檢查其參數(shù)是否是無窮大。

          如果 number 是有限的,則返回 true. 如果 number NaN( 非數(shù)字 ) 或者是無窮大,則返回 false;

          ?

          2): 字符:

          ‘you’re right’;

          這樣寫的話 js 會誤以為 you 字母后就結(jié)束了,引起錯誤。

          所以當(dāng)遇到這種情況的時候,必須用到轉(zhuǎn)義。

          我們可以這么寫:

          ‘you\’re right’;

          另外:你可以 google.com 搜索 轉(zhuǎn)義序列表

          ?

          字符串的簡單操作例子:

          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 出現(xiàn)的位置。 輸出: 1??

          從例子可以看出,基數(shù)都是從 0 開始的。

          var e = a.substring( a.length-1 ); // 可以看出, substring 2 個參數(shù)不寫的話,

          // 默認(rèn) 是到最后。

          var f = a.substring( a.length-1 , a.length);// 等價于

          ?

          3): 數(shù)字跟字符之間的轉(zhuǎn)換:

          數(shù)字轉(zhuǎn)字符:

          var number_to_string = number + “ ”; // 方法 1 :添加一個空的字符串。

          var number_to_string =String(number); // 方法 2 :使用 String() 函數(shù)。

          var number_to_string =number. toString(); // 方法 3 :使用 toString() 函數(shù)。

          注: toString() 方法默認(rèn)是以 10 進制轉(zhuǎn)換。

          如果要使用 8 進制轉(zhuǎn)換可以 這么寫: number. toString(8);

          ?

          字符轉(zhuǎn)數(shù)字:

          var string_to_number = string – 0 ; // 方法 1 字符串減去 0

          var string_to_number = Number(string) ; // 方法 2 :使用 Number () 函數(shù)。

          var string_to_number = parseInt(string) ; // 方法 3 :使用 parseInt () 函數(shù)。

          方法 1 中不能 string+0 ; 這樣會導(dǎo)致字符串拼接,而不是類型轉(zhuǎn)換。

          方法 2 中的 Number 函數(shù)轉(zhuǎn)換,比較嚴(yán)格。

          比如:

          var a = "19cssrain86";

          var b = Number(a);? // 輸出 NaN.

          如果我們使用方法 3

          var c = parseInt(a); // 輸出 19

          可以看出 parseInt() 會自動忽略非數(shù)字的部分。

          parseInt() 只取整數(shù)部分,忽略小數(shù)部分。

          parseFloat() 會把小數(shù)部分也取到。

          toString() 一樣, parseInt 也有進制,默認(rèn)是 10 進制。

          如果想使用 8 進制,可以這么寫: parseInt( “077” , 8 ); // 輸出 63 = 7 * 8 + 7

          當(dāng)字符以 0 開頭的時候,我們必須把 第二個參數(shù) 指明,不然 js 可能會以 8 進制去轉(zhuǎn)換。

          ?

          4): 布爾類型:

          布爾在數(shù)字環(huán)境中: true? 轉(zhuǎn)換為 ? 1? false? 轉(zhuǎn)換為 ? 0?

          在字符環(huán)境中: true? 轉(zhuǎn)換為 ? “true”? false? 轉(zhuǎn)換為 ? “false”?

          布爾轉(zhuǎn)換:

          var x_to_Boolean = Boolean(x); // 方法 1 :使用 Boolean () 函數(shù)。

          var x_to_Boolean = !x; // 方法 2 :使用 感嘆號。

          ?

          5): 函數(shù)的定義:

          方法 1 :普通定義

          function square(x){

          ????? return x*x;

          }

          方法 2 :函數(shù)直接量定義

          var square = function(x){? return x*x; }?? // 推薦使用

          方法 3 :構(gòu)造參數(shù)

          var square = new Function(“x”,”return x*x;”);?? // 效率低

          ?

          6): 對象:

          如果有一個名為 cssrain 的對象 他有一個高度 height 的屬性。

          那么我們可以這么引用:

          cssrain.height;

          還可以使用關(guān)聯(lián)數(shù)組定義: cssrain[“height”];

          ?

          創(chuàng)建對象:

          方法 1

          var point = new Object();

          point.x = 3;

          point.y = 5;

          方法 2 :使用對象直接量

          var point = {x:3 , y:5 }

          當(dāng)然 json 也可以咯。

          ?

          對象在字符的環(huán)境下,會調(diào)用 toString() 方法。

          數(shù)字環(huán)境下,會調(diào)用 valueOf() 方法。

          布爾環(huán)境下,非空對象為 true;

          ?

          7): 數(shù)組:

          常規(guī)數(shù)組:以非負(fù)整數(shù)做為下標(biāo)。 image[0]

          關(guān)聯(lián)數(shù)組:以字符做為下標(biāo)。如: image[“width”]

          js 不支持多維數(shù)組,但數(shù)組里面可以嵌套數(shù)組。

          ?

          創(chuàng)建數(shù)組:

          方法 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} );

          注意下:如果只傳了一個參數(shù);比如 var a = new Array(3);

          那么它是表示: 3 個未定義元素 新數(shù)組。

          方法 3 :使用數(shù)組直接量

          var? a =[“1” ,? 2 , {x:1 , y :3 }]; // 注意外面的 括號 ? ? 不是花 括號。

          ?

          8):null undefined

          null 表示無值;

          undefined : 使用一個并未聲明的變量,或者使用了已經(jīng)聲明的變量但未賦值或者使用了一個并不存在的屬性。

          undefined==null

          如果要區(qū)分:

          可以使用 ===? 或者 typeof 運算符。

          ?

          9 , 新手常遇到的疑惑:

          var s =”you are right”;

          var b = s.substring(s.lastIndexOf(“ ”)-1 , s.length);

          疑惑: s 是對象還是字符串,為什么字符串會有方法呢?

          回答: s 是字符串。之所以有方法 ,是因為 string 類型 有一個相應(yīng)的對象類( String )。

          同樣數(shù)字和布爾都有相應(yīng)的 Number , Boolean 類。

          Js 會內(nèi)部進行相應(yīng)的包裝對象。 String 對象就替換了原始的字符串。

          ?

          總結(jié):

          簡單了介紹了 js 中的一些概念(詞法結(jié)構(gòu)) 數(shù)據(jù)類型(部分)。

          ?

          好了,今天就說到這里, 明天我們 繼續(xù)。 ^_^

          ps:該文檔來源互聯(lián)網(wǎng)

          posted on 2008-10-09 16:00 JasonChou 閱讀(296) 評論(0)  編輯  收藏 所屬分類: html
          主站蜘蛛池模板: 阜平县| 天气| 寻甸| 冀州市| 中阳县| 龙州县| 昭苏县| 涪陵区| 扎兰屯市| 宝兴县| 绥江县| 榆林市| 资阳市| 廉江市| 娱乐| 叙永县| 安福县| 望奎县| 临安市| 四子王旗| 巢湖市| 宝丰县| 阿尔山市| 盈江县| 金湖县| 泽普县| 嵊州市| 西昌市| 台州市| 尼木县| 宁津县| 荔波县| 石楼县| 桃源县| 六枝特区| 板桥市| 舟山市| 余干县| 定南县| 聊城市| 金乡县|