Oo緣來(lái)是你oO


          posts - 120,comments - 125,trackbacks - 0
          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(6)

          隨筆分類(lèi)(62)

          隨筆檔案(120)

          JavaScript

          個(gè)人博客

          技術(shù)網(wǎng)站

          有一只企鵝叫Linux

          有一部咖啡叫Java

          有一部經(jīng)典叫C++

          系列文章

          經(jīng)典Blog

          搜索

          •  

          積分與排名

          • 積分 - 144955
          • 排名 - 425

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          1.???? 何為 Jscript


          JScript
          是一種解釋型的、基于對(duì)象的腳本語(yǔ)言。

          ?

          局限性: ????

          1)??????? 不能使用該語(yǔ)言來(lái)編寫(xiě)?yīng)毩⑦\(yùn)行的應(yīng)用程序

          2)??????? 沒(méi)有對(duì)讀寫(xiě)文件的內(nèi)置支持

          3)??????? 只能在某個(gè)解釋器或 宿主 上運(yùn)行,如 ASP Internet 瀏覽器或者 Windows 腳本宿主

          ?

          JScript 是一種寬松類(lèi)型語(yǔ)言 , 這意味著我們不必顯式定義變量的數(shù)據(jù)類(lèi)型。多數(shù)情況下, JScript 將根據(jù)需要自動(dòng)進(jìn)行轉(zhuǎn)換。例如:將數(shù)值添加到字符串上時(shí),數(shù)值將被轉(zhuǎn)換為字符串(詳情見(jiàn)強(qiáng)制轉(zhuǎn)換)。

          ?

          ?

          2.???? 變量的聲明


          var count;???????????????? //
          變量聲明

          var count = 0;???????????// 變量聲明 & 初始化

          name = "";????????????????// 隱式聲明變量 name ,沒(méi)有使用關(guān)鍵字 var

          ?

          1)??????????? 變量聲明之后就置于內(nèi)存之中,以便后來(lái)在腳本中使用

          2)??????????? 若在 var 語(yǔ)句中變量沒(méi)有初始化,變量自動(dòng)取值 undefined ( 1)

          3)??????????? 隱式聲明的變量擁有全局范圍可見(jiàn)度。當(dāng)在函數(shù)中聲明一個(gè)變量時(shí),該變量不能用于全局范圍,所以函數(shù)中聲明變量必須使用 var 關(guān)鍵

          4)??????????? 不能使用未經(jīng)過(guò)聲明的變量

          5)??????????? 聲明一個(gè)變量并進(jìn)行初始化,但又不想指定任何特殊值,可以賦值為 null

          ?

          var count = null;

          var money = 3 * count;?????? // money 的值為 0

          ?

          6)??????????? 聲明一個(gè)變量但沒(méi)有初始化,其值為 undefined

          ?

          var longth;

          var area = 10 * longth;?????? // area 的值為 NaN ,因?yàn)?/span> longth undefined


          ***********************************?

          *???JScript
          null undefined 的主要區(qū)別???*

          ***************************************

          ---?? null
          是關(guān)鍵字;

          undefined Global 對(duì)象的一個(gè)屬性。

          ?

          ---???null 是對(duì)象 ( 空對(duì)象 , 沒(méi)有任何屬性和方法 )

          undefined undefined 類(lèi)型的值。

          ?

          document.writeln(typeof null);?????????????????? // 輸出 object

          document.writeln(typeof undefined);?????????// 輸出 undefined

          ?

          ---?? 對(duì)象模型中,所有的對(duì)象都是 Object 或其子類(lèi)的實(shí)例,但 null 對(duì)象例外:

          document.writeln(null instanceof Object);// 輸出 false

          ?

          ---?? null“ 等值 (==)” undefined ,但不 全等值 (===)” undefined

          document.writeln(null == undefined);????????????????// 輸出 true

          document.writeln(null === undefined);???????????? // 輸出 false

          ?

          ---??? 運(yùn)算時(shí) null undefined 都可以被類(lèi)型轉(zhuǎn)換為 false ,但不等值于 false

          document.writeln(!null);?????????????????????????????????? // 輸出 true

          document.writeln(!undefined);?????????????????????? ? // 輸出 true

          document.writeln(null==false);??????????????????????? // 輸出 false

          document.writeln(undefined==false);????????????? // 輸出 false

          ?

          ?

          7)??????????? JScript 是一種區(qū)分大小寫(xiě)的語(yǔ)言,因此變量名稱 blogjava 和變量名稱 blogJava 是不一樣的

          ?

          < 1> undefined

          ?

          undefined 屬性 Global ( 2) 對(duì)象的一個(gè)成員,該屬性在腳本引擎初始化后可用。

          ?

          如果聲明了一個(gè)變量但沒(méi)有初始化,該變量的值就是 undefined

          ?

          如果沒(méi)有聲明變量,那么就不能將其與 undefined 進(jìn)行比較,但是可以將該變量的類(lèi)型與字符串 "undefined" 進(jìn)行比較。

          ?

          *****? undefined 應(yīng)用示例 *****

          ?

          var declared;??????????????????????????????????? // 聲明變量。

          if (declared == undefined)??????????????? // 測(cè)試變量。

          ? document.write("declared has not been initialized.");

          ?

          if (typeOf(notDeclared) == "undefined")

          ? document.write("notDeclared has not been defined.");

          ?


          <
          2> Global

          ?

          Global 對(duì)象是一個(gè)固有對(duì)象 ( 3) ,把所有全局方法集中在一個(gè)對(duì)象中。

          ?

          Global 不能用 new 運(yùn)算符創(chuàng)建。它在 JScripting 引擎被初始化時(shí)創(chuàng)建,并立即使其方法和屬性可用。

          ?

          ***** Global 屬性 *****

          ?

          1)??????? Infinity :返回 Number.POSITIVE_INFINITY 的初始值

          ???POSITIVE_INFINITY 屬性返回比在 JScript 中能夠表示的最大的數(shù) (Number.MAX_VALUE) 更大的值。

          ???JScript POSITIVE_INFINITY 值顯示為 infinity, 該值數(shù)學(xué)上的作用與正無(wú)窮相同。
          ?

          ?與之相對(duì), NEGATIVE_INFINITY 屬性返回比 JScript 能夠表示的最小負(fù)數(shù)( -Number.MAX_VALUE )更小的值。

          ???JScript NEGATIVE_INFINITY 值顯示為 -infinity, 該值數(shù)學(xué)上的作用與負(fù)無(wú)窮相同。

          ?可以看出 POSITIVE_INFINITY NEGATIVE_INFINITY 都是 Number 對(duì)象的屬性, Number 對(duì)象最主要的用途是將其屬性集中到一個(gè)對(duì)象中,以及使數(shù)字能夠通過(guò) toString 方法轉(zhuǎn)換為字符串。

          ?

          Number 屬性

          Number 方法

          MAX_VALUE

          toLocaleString

          MIN_VALUE

          NaN

          toString

          NEGATIVE_INFINITY

          POSITIVE_INFINITY

          valueOf

          constructor

          prototype

          ?

          2)??????? NaN :返回特殊值 NaN ,表示表達(dá)式不是數(shù)字

          ?相關(guān)方法: isNan( numValue )

          ??????????返回一個(gè) Boolean 值,指明提供的值 (numValue) 是否是保留值 NaN ( 不是數(shù)字 )即判斷是否為數(shù)字。

          ????????? 如果值是 NaN 那么 isNaN 函數(shù)返回 true ,否則返回 false
          ??????????
          使用這個(gè)函數(shù)的典型情況是檢查 parseInt parseFloat 方法的返回值。

          ????????? 還有一種辦法,變量可以與它自身進(jìn)行比較。 如果比較的結(jié)果不等,那么它就是 NaN 這是因?yàn)?/span> NaN 是唯一與自身不等的值。

          ?

          ***** Global 方法 *****

          ?

          Global

          方法

          escape

          eval

          isFinite

          isNaN

          parseFloat

          parseInt

          unescape

          ?

          < 3> 固有對(duì)象

          ?

          固有對(duì)象是作為標(biāo)準(zhǔn) JScript 語(yǔ)言一部分的一種對(duì)象。所有的腳本都可以使用這種對(duì)象。 JScript 中的固有對(duì)象:

          固有對(duì)象

          Array

          Boolean

          Date

          Function

          Global

          Math

          Number

          Object

          RegExp

          Regular

          Expression

          String

          ?

          3.???? 強(qiáng)制轉(zhuǎn)換


          Jscript 中,可以對(duì)不同類(lèi)型的值執(zhí)行運(yùn)算, JScript 解釋器自動(dòng)將數(shù)據(jù)類(lèi)型之一改變 ( 強(qiáng)制轉(zhuǎn)換 ) 為另一種數(shù)據(jù)類(lèi)型,然后執(zhí)行運(yùn)算。

          ?

          運(yùn)算

          結(jié)果

          數(shù)值與字符串相加

          將數(shù)值強(qiáng)制轉(zhuǎn)換為字符串

          布爾值與字符串相加

          將布爾值強(qiáng)制轉(zhuǎn)換為字符串

          數(shù)值與布爾值相加

          將布爾值強(qiáng)制轉(zhuǎn)換為數(shù)值

          ?

          ?

          ***** 強(qiáng)制轉(zhuǎn)換示例 *****

          ?

          var year = 2008;???????????????? // 一個(gè)數(shù)字

          var hello = "Hello ";???????????? // 一個(gè)字符串

          hello = hello + year;???? ?????? // 將數(shù)字強(qiáng)制轉(zhuǎn)換為字符串

          document.write(hello);????????// 輸出 Hello 2008

          ?

          要想顯示的將字符串轉(zhuǎn)換為數(shù)字可使用方法 parseInt() parseFloat()

          ?

          ?

          4.???? JScript 的數(shù)據(jù)類(lèi)型

          Jscript 有三種主要數(shù)據(jù)類(lèi)型、兩種復(fù)合數(shù)據(jù)類(lèi)型和兩種特殊數(shù)據(jù)類(lèi)型。

          主要(基本)數(shù)據(jù)類(lèi)型:?
          ?????
          字符串
          ????
          數(shù)值
          ????
          布爾


          復(fù)合(引用)數(shù)據(jù)類(lèi)型:
          ?
          ??????
          對(duì)象?
          ??????
          數(shù)組


          特殊數(shù)據(jù)類(lèi)型:
          ?
          ??????
          Null?
          ??????
          Undefined

          1.??????? 字符串

          1)??????? 字符串中可以包含雙引號(hào),該雙引號(hào)兩邊需加單引號(hào),
          ?字符串中可以包含單引號(hào),該單引號(hào)兩邊需加雙引號(hào)。

          "I’m Ma Jia nan."

          '"good good study, day day up", my teacher said.'

          ?

          2)??????? JScript 中沒(méi)有表示單個(gè)字符的類(lèi)型(如 C++ char )。要表示 Jscript 中的單個(gè)字符,應(yīng)創(chuàng)建一個(gè)只包含一個(gè)字符的字符串。包含零個(gè)字符( "" 的字符串是空(零長(zhǎng)度)字符串

          ?

          2.??????? 數(shù)值類(lèi)型

          Jscript 中整數(shù)和浮點(diǎn)值沒(méi)有差別; JScript 數(shù)值可以是其中任意一種( JScript 內(nèi)部將所有的數(shù)值表示為浮點(diǎn)值)。

          ??????

          1)??????? 整型

          八進(jìn)制和十六進(jìn)制數(shù)可以為負(fù),但不能有小數(shù)位,同時(shí)不能以科學(xué)計(jì)數(shù)法(指數(shù))表示。

          2)??????? JScript 包含特殊值數(shù)字:
          NaN( 不是數(shù))。當(dāng)對(duì)不適當(dāng)?shù)臄?shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算時(shí)使用,例如字符串或未定義值。
          正無(wú)窮大。在JScript中如果一個(gè)正數(shù)太大的話使用它來(lái)表示。
          負(fù)無(wú)窮大。在JScript中如果一個(gè)負(fù)數(shù)太大的話使用它來(lái)表示。
          0和負(fù)0Jscript區(qū)分正0和負(fù)0

          3.??????? boolean

          任何值為 0 null未定義(undefined)或空字符串的表達(dá)式被解釋為false。其他任意值的表達(dá)式解釋為true

          ?

          4.??????? Null 數(shù)據(jù)類(lèi)型

          1)??????? Jscript 中數(shù)據(jù)類(lèi)型 null 只有一個(gè)值: null 。關(guān)鍵字 null 不能用作函數(shù)或變量的名稱。

          2)??????? 包含 null 的變量包含 無(wú)值 無(wú)對(duì)象 。換句話說(shuō),該變量沒(méi)有保存有效的數(shù)、字符串、 boolean數(shù)組或?qū)ο蟆?/span>

          3)??????? Jscript 中, null 0 不相等(與在 C C++ 中不同)。同時(shí)應(yīng)該指出的是, Jscript typeof 運(yùn)算符將報(bào)告 null 值為 Object 類(lèi)型,而非類(lèi)型 null 。這點(diǎn)潛在的混淆是為了向下兼容。

          5.??????? Undefined 數(shù)據(jù)類(lèi)型

          如下情況使返回 undefined 值:

          ¨??????? 對(duì)象屬性不存在,

          ¨??????? 聲明了變量但從未賦值。

          ???注意不能通過(guò)與 undefined 做比較來(lái)測(cè)試一個(gè)變量是否存在,但可以檢查它的類(lèi)型是否為 undefined 。在以下的代碼范例中,假設(shè)程序員想測(cè)試是否已經(jīng)聲明變量 x

          ??????//方法不起作用?
          ??????
          if( x == undefined)
          ????????????//do sth
          ??????
          ???//方法不起作用,必須檢查字符串"undefined"
          ???if(typeof(x) == undefined)
          ??????// do sth

          ???//方法有效
          ???if(typeof(x) == "undefined")
          ??????//do sth

          考慮將 undefined 值與 null 做比較。? ?????
          someObject.prop == null;
          ????
          ? 如下情況時(shí),比較的結(jié)果為 true
          ?????? 如果屬性 someObject.prop 包含 null
          ??????
          如果屬性 someObject.prop 不存在


          要檢查一個(gè)對(duì)象屬性是否存在,可以使用新的
          in ( 4) 運(yùn)算符:
          if("prop" in someObject)
          //someObject有屬性prop


          <
          4> in 運(yùn)算符

          ?

          result = propertyinobject

          ?

          in 操作檢查對(duì)象中是否有名為 property 的屬性。

          ?

          ?

          ?<to be continued ... ...>

          ?

          ?

          ?

          ?



          馬嘉楠
          jianan.ma@gmail.com

          posted on 2006-09-07 20:08 馬嘉楠 閱讀(443) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 康平县| 黑河市| 汝南县| 百色市| 利津县| 微博| 桦甸市| 石门县| 延川县| 沽源县| 浮山县| 历史| 汤阴县| 万宁市| 莱州市| 九台市| 宿州市| 维西| 印江| 南木林县| 怀来县| 行唐县| 类乌齐县| 绥江县| 新泰市| 澄城县| 汤原县| 屯留县| 古蔺县| 磴口县| 纳雍县| 岳阳县| 清原| 乐昌市| 康马县| 黄大仙区| 本溪| 肥乡县| 清原| 花莲市| 滦平县|