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

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          積分與排名

          • 積分 - 173676
          • 排名 - 340

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

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

          1 , javascript
          字符集:

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

          為什么要采用這個(gè)編碼呢?

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

          Javascript 中每個(gè)字符都是用 2 個(gè)字節(jié)表示的。(因?yàn)槭?/span> 16 位編碼)

          ?

          ?

          2 , 大小寫(xiě)敏感:

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

          注意下:以前我也犯過(guò)的錯(cuò)誤。

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

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

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

          同時(shí) XHTML 中也只能使用小寫(xiě)。

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

          另外每行程序后 分號(hào) 也是一樣,我們都寫(xiě)上。

          ?

          3 , 注釋:

          單行:

          //?? 注釋 1

          /*?? 注釋 2? */?

          多行:

          /*? 注釋 3

          *? 注釋 3

          *? 注釋 3

          */

          ?

          4 , 標(biāo)識(shí)符:

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

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

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

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

          ?

          5 , 直接量:

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

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

          這些都是直接量。

          ?

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

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

          其實(shí)我們只要不取一些特郁悶的名字,都不會(huì)沖突的。

          ?

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

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

          2 種小數(shù)據(jù)類型: null undefined . ( 為什么叫小數(shù)據(jù)類型?因?yàn)樗麄冎欢x了一個(gè)值 )

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

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

          ?

          其他的一些對(duì)象 :

          數(shù)組:

          Date 是日期的對(duì)象。

          RegExp 類: 正則表達(dá)式的對(duì)象。

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

          ?

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

          1): 數(shù)字:

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

          八進(jìn)制: var num = 011; // "0" 開(kāi)頭

          十六進(jìn)制: var num =0x1f; // "0x" 開(kāi)頭

          所以對(duì)于 js 這個(gè)都能識(shí)別的語(yǔ)言來(lái)說(shuō),就必須得注意。

          alert(377);?? // 377

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

          ?

          進(jìn)行算術(shù)運(yùn)算有個(gè)重要的對(duì)象: Math.

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

          ?

          2 個(gè)有用的函數(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ù)是否是無(wú)窮大。

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

          ?

          2): 字符:

          ‘you’re right’;

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

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

          我們可以這么寫(xiě):

          ‘you\’re right’;

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

          ?

          字符串的簡(jiǎn)單操作例子:

          var a = "cssrain";

          var b = a.charAt(a.length-1); // 從字符串 a 中截取最后一個(gè)字符。 ? 輸出: n

          var c = a.substring(0 , 2);? // 從字符串 a 中截取第 1 2 個(gè)字符。 輸出: cs

          var d = a.indexOf('s');?? // 從字符串 a 中查找 第一個(gè) s 出現(xiàn)的位置。 輸出: 1??

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

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

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

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

          ?

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

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

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

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

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

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

          如果要使用 8 進(jìn)制轉(zhuǎn)換可以 這么寫(xiě): 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 ; 這樣會(huì)導(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() 會(huì)自動(dòng)忽略非數(shù)字的部分。

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

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

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

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

          當(dāng)字符以 0 開(kāi)頭的時(shí)候,我們必須把 第二個(gè)參數(shù) 指明,不然 js 可能會(huì)以 8 進(jìn)制去轉(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 :使用 感嘆號(hào)。

          ?

          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): 對(duì)象:

          如果有一個(gè)名為 cssrain 的對(duì)象 他有一個(gè)高度 height 的屬性。

          那么我們可以這么引用:

          cssrain.height;

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

          ?

          創(chuàng)建對(duì)象:

          方法 1

          var point = new Object();

          point.x = 3;

          point.y = 5;

          方法 2 :使用對(duì)象直接量

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

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

          ?

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

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

          布爾環(huán)境下,非空對(duì)象為 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} );

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

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

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

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

          ?

          8):null undefined

          null 表示無(wú)值;

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

          undefined==null

          如果要區(qū)分:

          可以使用 ===? 或者 typeof 運(yùn)算符。

          ?

          9 , 新手常遇到的疑惑:

          var s =”you are right”;

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

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

          回答: s 是字符串。之所以有方法 ,是因?yàn)?/span> string 類型 有一個(gè)相應(yīng)的對(duì)象類( String )。

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

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

          ?

          總結(jié):

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

          ?

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

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

          posted on 2008-10-09 16:00 JasonChou 閱讀(289) 評(píng)論(0)  編輯  收藏 所屬分類: html
          主站蜘蛛池模板: 惠州市| 密山市| 泰宁县| 平邑县| 邹城市| 长顺县| 固阳县| 密云县| 上栗县| 黑龙江省| 华容县| 湘阴县| 鄂州市| 林州市| 漠河县| 隆德县| 永春县| 探索| 广东省| 仙居县| 托克逊县| 舞钢市| 永胜县| 黄山市| 竹山县| 桃园县| 镇平县| 海南省| 凌源市| 明溪县| 孝昌县| 高密市| 中方县| 加查县| 堆龙德庆县| 禹州市| 巴林右旗| 禄劝| 兰州市| 舞钢市| 东阳市|