Oo缘来是你oO


posts - 120,comments - 125,trackbacks - 0

1.     何为 Jscript


JScript
是一种解释型的、基于对象的脚本语言。

 

局限性:     

1)        不能使用该语言来编写独立运行的应用程序

2)        没有对读写文件的内置支持

3)        只能在某个解释器或 宿主 上运行,如 ASP Internet 浏览器或者 Windows 脚本宿主

 

JScript 是一种宽松类型语言 , 这意味着我们不必显式定义变量的数据类型。多数情况下, JScript 将根据需要自动进行转换。例如:将数值添加到字符串上时,数值将被转换为字符串(详情见强制转换)。

 

 

2.     变量的声明


var count;                 //
变量声明

var count = 0;           // 变量声明 & 初始化

name = "";                // 隐式声明变量 name ,没有使用关键字 var

 

1)            变量声明之后就置于内存之中,以便后来在脚本中使用

2)            若在 var 语句中变量没有初始化,变量自动取值 undefined ( 1)

3)            隐式声明的变量拥有全局范围可见度。当在函数中声明一个变量时,该变量不能用于全局范围,所以函数中声明变量必须使用 var 关键

4)            不能使用未经过声明的变量

5)            声明一个变量并进行初始化,但又不想指定任何特殊值,可以赋值为 null

 

var count = null;

var money = 3 * count;       // money 的值为 0

 

6)            声明一个变量但没有初始化,其值为 undefined

 

var longth;

var area = 10 * longth;       // area 的值为 NaN ,因为 longth undefined


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

*   JScript
null undefined 的主要区别   *

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

---   null
是关键字;

undefined Global 对象的一个属性。

 

---   null 是对象 ( 空对象 , 没有任何属性和方法 )

undefined undefined 类型的值。

 

document.writeln(typeof null);                   // 输出 object

document.writeln(typeof undefined);         // 输出 undefined

 

---   对象模型中,所有的对象都是 Object 或其子类的实例,但 null 对象例外:

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

 

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

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

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

 

---    运算时 null undefined 都可以被类型转换为 false ,但不等值于 false

document.writeln(!null);                                   // 输出 true

document.writeln(!undefined);                         // 输出 true

document.writeln(null==false);                        // 输出 false

document.writeln(undefined==false);              // 输出 false

 

 

7)            JScript 是一种区分大小写的语言,因此变量名称 blogjava 和变量名称 blogJava 是不一样的

 

< 1> undefined

 

undefined 属性 Global ( 2) 对象的一个成员,该属性在脚本引擎初始化后可用。

 

如果声明了一个变量但没有初始化,该变量的值就是 undefined

 

如果没有声明变量,那么就不能将其与 undefined 进行比较,但是可以将该变量的类型与字符串 "undefined" 进行比较。

 

*****  undefined 应用示例 *****

 

var declared;                                    // 声明变量。

if (declared == undefined)                // 测试变量。

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

 

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

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

 


<
2> Global

 

Global 对象是一个固有对象 ( 3) ,把所有全局方法集中在一个对象中。

 

Global 不能用 new 运算符创建。它在 JScripting 引擎被初始化时创建,并立即使其方法和属性可用。

 

***** Global 属性 *****

 

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

   POSITIVE_INFINITY 属性返回比在 JScript 中能够表示的最大的数 (Number.MAX_VALUE) 更大的值。

   JScript POSITIVE_INFINITY 值显示为 infinity, 该值数学上的作用与正无穷相同。
 

 与之相对, NEGATIVE_INFINITY 属性返回比 JScript 能够表示的最小负数( -Number.MAX_VALUE )更小的值。

   JScript NEGATIVE_INFINITY 值显示为 -infinity, 该值数学上的作用与负无穷相同。

 可以看出 POSITIVE_INFINITY NEGATIVE_INFINITY 都是 Number 对象的属性, Number 对象最主要的用途是将其属性集中到一个对象中,以及使数字能够通过 toString 方法转换为字符串。

 

Number 属性

Number 方法

MAX_VALUE

toLocaleString

MIN_VALUE

NaN

toString

NEGATIVE_INFINITY

POSITIVE_INFINITY

valueOf

constructor

prototype

 

2)        NaN :返回特殊值 NaN ,表示表达式不是数字

 相关方法: isNan( numValue )

          返回一个 Boolean 值,指明提供的值 (numValue) 是否是保留值 NaN ( 不是数字 )即判断是否为数字。

          如果值是 NaN 那么 isNaN 函数返回 true ,否则返回 false
          
使用这个函数的典型情况是检查 parseInt parseFloat 方法的返回值。

          还有一种办法,变量可以与它自身进行比较。 如果比较的结果不等,那么它就是 NaN 这是因为 NaN 是唯一与自身不等的值。

 

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

 

Global

方法

escape

eval

isFinite

isNaN

parseFloat

parseInt

unescape

 

< 3> 固有对象

 

固有对象是作为标准 JScript 语言一部分的一种对象。所有的脚本都可以使用这种对象。 JScript 中的固有对象:

固有对象

Array

Boolean

Date

Function

Global

Math

Number

Object

RegExp

Regular

Expression

String

 

3.     强制转换


Jscript 中,可以对不同类型的值执行运算, JScript 解释器自动将数据类型之一改变 ( 强制转换 ) 为另一种数据类型,然后执行运算。

 

运算

结果

数值与字符串相加

将数值强制转换为字符串

布尔值与字符串相加

将布尔值强制转换为字符串

数值与布尔值相加

将布尔值强制转换为数值

 

 

***** 强制转换示例 *****

 

var year = 2008;                 // 一个数字

var hello = "Hello ";             // 一个字符串

hello = hello + year;            // 将数字强制转换为字符串

document.write(hello);        // 输出 Hello 2008

 

要想显示的将字符串转换为数字可使用方法 parseInt() parseFloat()

 

 

4.     JScript 的数据类型

Jscript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型。

主要(基本)数据类型: 
     
字符串
    
数值
    
布尔


复合(引用)数据类型:
 
      
对象 
      
数组


特殊数据类型:
 
      
Null 
      
Undefined

1.        字符串

1)        字符串中可以包含双引号,该双引号两边需加单引号,
 字符串中可以包含单引号,该单引号两边需加双引号。

"I’m Ma Jia nan."

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

 

2)        JScript 中没有表示单个字符的类型(如 C++ char )。要表示 Jscript 中的单个字符,应创建一个只包含一个字符的字符串。包含零个字符( "" 的字符串是空(零长度)字符串

 

2.        数值类型

Jscript 中整数和浮点值没有差别; JScript 数值可以是其中任意一种( JScript 内部将所有的数值表示为浮点值)。

      

1)        整型

八进制和十六进制数可以为负,但不能有小数位,同时不能以科学计数法(指数)表示。

2)        JScript 包含特殊值数字:
NaN( 不是数)。当对不适当的数据进行数学运算时使用,例如字符串或未定义值。
正无穷大。在JScript中如果一个正数太大的话使用它来表示。
负无穷大。在JScript中如果一个负数太大的话使用它来表示。
0和负0Jscript区分正0和负0

3.        boolean

任何值为 0 null未定义(undefined)或空字符串的表达式被解释为false。其他任意值的表达式解释为true

 

4.        Null 数据类型

1)        Jscript 中数据类型 null 只有一个值: null 。关键字 null 不能用作函数或变量的名称。

2)        包含 null 的变量包含 无值 无对象 。换句话说,该变量没有保存有效的数、字符串、 boolean数组或对象。

3)        Jscript 中, null 0 不相等(与在 C C++ 中不同)。同时应该指出的是, Jscript typeof 运算符将报告 null 值为 Object 类型,而非类型 null 。这点潜在的混淆是为了向下兼容。

5.        Undefined 数据类型

如下情况使返回 undefined 值:

¨        对象属性不存在,

¨        声明了变量但从未赋值。

   注意不能通过与 undefined 做比较来测试一个变量是否存在,但可以检查它的类型是否为 undefined 。在以下的代码范例中,假设程序员想测试是否已经声明变量 x

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

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

考虑将 undefined 值与 null 做比较。       
someObject.prop == null;
    
  如下情况时,比较的结果为 true
       如果属性 someObject.prop 包含 null
      
如果属性 someObject.prop 不存在


要检查一个对象属性是否存在,可以使用新的
in ( 4) 运算符:
if("prop" in someObject)
//someObject有属性prop


<
4> in 运算符

 

result = propertyinobject

 

in 操作检查对象中是否有名为 property 的属性。

 

 

 <to be continued ... ...>

 

 

 

 



马嘉楠
jianan.ma@gmail.com

posted on 2006-09-07 20:08 马嘉楠 阅读(432) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: