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和负0。Jscript区分正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
马嘉楠 阅读(437)
评论(0) 编辑 收藏