`

Javascript 与 ActionScript 中 null、NaN和undefined的区别

阅读更多

原文地址:http://blog.csdn.net/tmeteor/archive/2009/09/15/4554409.aspx

AS中:

其实Null、NaN和undefined都是变量的默认初始值。变量类型不同,系统给与的初始值就不同:
int,uint - 0
Boolean - false
Number - NaN
String,Array,Object - null
未指定变量类型 - undefined

JS中:

1.类型分析:

js中的数据类型有 undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。
var a1;
var a2 = true;
var a3 = 1;
var a4 = "Hello";
var a5 = new Object();
var a6 = null;
var a7 = NaN;
var a8 = undefined;

alert(typeof a);   //显示"undefined"
alert(typeof a1); //显示"undefined"
alert(typeof a2); //显示"boolean"
alert(typeof a3); //显示"number"
alert(typeof a4); //显示"string"
alert(typeof a5); //显示"object"
alert(typeof a6); //显示"object"
alert(typeof a7); //显示"number"
alert(typeof a8); //显示"undefined"

从上面的代码中可以看出未定义的值和定义未赋值的为 undefined,null是一种特殊的object,NaN是一种特殊的number。

2.比较运算

var a1;        //a1的值为undefined
var a2 = null;
var a3 = NaN;

alert(a1 == a2); //显示"true"
alert(a1 != a2); //显示"false"

alert(a1 == a3); //显示"false"
alert(a1 != a3); //显示"true"

alert(a2 == a3); //显示"false"
alert(a2 != a3); //显示"true"

alert(a3 == a3); //显示"false"
alert(a3 != a3); //显示"true"

从上面的代码可以得出结论:(1)undefined与null是相等; (2)NaN与任何值都不相等,与自己也不相等。

JavaScript undefined 属性

定义和用法

undefined 属性用于存放 JavaScript 的 undefined 值。

语法

undefined

说明

无法使用 for/in 循环来枚举 undefined 属性,也不能用 delete 运算符来删除它。

undefined 不是常量,可以把它设置为其他值。

当尝试读取不存在的对象属性时也会返回 undefined。

提示和注释

< 值等价于 undefined 运算符认为 运算来测试某个值是否是未定义的,因为="=" ="==">

< 表示无值,而>

实例

在本例中,我们将检测两个变量中未定义的一个:

<script type="text/javascript">

var t1=""
var t2

if (t1===undefined) {document.write("t1 is undefined")}
if (t2===undefined) {document.write("t2 is undefined")}

</script>

输出:

t2 is undefined
[补充]
Null 数据类型 
在 Jscript 中数据类型 null 只有一个值:null。关键字 null 不能用作函数或变量的名称。 

包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。 

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

Undefined 数据类型 
如下情况使返回 undefined 值: 

对象属性不存在, 
声明了变量但从未赋值。 
注意不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为“undefined”。在以下的代码范例中,假设程序员想测试是否已经声明变量 x : 

// 这种方法不起作用 
if (x == undefined) 
    // 作某些操作 
// 这个方法同样不起作用- 必须检查 
// 字符串 "undefined" 
if (typeof(x) == undefined) 
    // 作某些操作 
// 这个方法有效 
if (typeof(x) == "undefined") 
    // 作某些操作 
考虑将 undefined 值与null做比较。 

someObject.prop == null; 
如下情况时,比较的结果为 true, 

如果属性 someObject.prop 包含 null 值, 
如果属性 someObject.prop 不存在。 
要检查一个对象属性是否存在,可以使用新的 in 运算符: 
if ("prop" in someObject) 
// someObject 有属性 'prop' 

在JavaScript中,null与undefined一度使人迷惑。下面的分析,有利于你更清晰的认知它(或者让你更迷惑): 

- null是关键字;undefined是Global对象的一个属性 

- null是对象(空对象, 没有任何属性和方法);undefined是undefined类型的值。试试下面的代码: 

       document.writeln(typeof null); //return object 
       document.writeln(typeof undefined); //return undefined 

- 对象模型中,所有的对象都是Object或其子类的实例,但null对象例外: 
       document.writeln(null instanceof Object); //return false 

- null“等值(==)”于undefined,但不“全等值(===)”于undefined: 
       document.writeln(null == undefined); //return true 
       document.writeln(null === undefined); //return false 

- 运算时null与undefined都可以被类型转换为false,但不等值于false: 
       document.writeln(!null, !undefined); //return true,true 
       document.writeln(null==false); //return false 
       document.writeln(undefined==false); //return false 

分享到:
评论

相关推荐

    ActionScript Number(NaN) —> java(null) NaN —> null

    —&gt; java(null) —&gt; NaN —&gt; null”这一主题,主要关注如何处理在ActionScript中的NaN(Not-a-Number)值在Java中转换为null的情况,以及这种转换可能引发的问题和解决方案。 首先,NaN是ActionScript中的一个特殊...

    javascript与actionscript的交互.[课件]

    JavaScript 和 ActionScript 是两种在 Web 开发中广泛使用的脚本语言,它们分别在浏览器环境(JavaScript)和 Adobe Flash 平台(ActionScript)上运行。虽然它们语法上有许多相似之处,但它们的应用场景和交互方式...

    JavaScript与ActionScript3交互问题总结

    JavaScript与ActionScript3之间的交互主要基于两种技术:Flash Player的ExternalInterface API和浏览器的跨文档消息传递(Cross-document messaging,CDM)。ExternalInterface API允许AS3代码暴露方法给JavaScript...

    javascript与actionscript3.0通信实例.rar

    JavaScript 和 ActionScript 3.0 是两种不同的编程语言,它们分别在 Web 和 Flash 平台中发挥重要作用。在现代Web开发中,有时我们需要在浏览器端的JavaScript与Flash内容(使用ActionScript编写)之间进行交互,以...

    ActionScript与JavaScript相互调用

    其中,ActionScript与JavaScript是两种常用的语言,它们分别应用于Adobe Flash和网页环境中。虽然这两种语言有着不同的应用场景和发展背景,但在某些情况下,为了实现更复杂的功能,开发者可能需要让它们之间进行...

    javascript和actionscript之间通信实例

    JavaScript 和 ActionScript 之间的通信是跨平台开发中的一个重要概念,特别是在构建富互联网应用程序(RIA)时,例如使用 Adobe Flash 平台。这两种语言虽然在不同的环境中运行,但可以通过多种技术实现交互,为...

    一个实现ActionScript 与JavaScript 进行相互通信的程序例子

    在Web开发中,ActionScript和JavaScript是两种不同的脚本语言,分别用于Adobe Flash(ActionScript)和HTML页面(JavaScript)的交互。ActionScript主要用于创建富媒体内容,而JavaScript则广泛应用于网页动态效果和...

    ActionScript与JavaScript在教学中的相互调用.pdf

    ActionScript与JavaScript在教学中的相互调用 ActionScript是Flash中的内置编程语言,而JavaScript是网页浏览器采用的网页文本编程语言。虽然这两种编程语言不同,但是如果在教学中将二者结合起来相互调用,却可以...

    ActionScript与JavaScript相互调用(论文)

    - **从JavaScript调用ActionScript**:允许JavaScript访问Flash影片中的对象和方法,从而实现对Flash影片的控制。 #### 3. 实现方法 - **在Flash中调用JavaScript**:可以通过`getURL()`函数来实现。该函数主要...

    actionscript与javascript的区别

    当时Netscape的JavaScript使其在与ie的浏览器大战中独占鳌头,而后ie创建了jscript应对Netscape的JavaScript,而事实上jscript基本上抄袭的JavaScript,这也是微软一直备受诟病的一件事,jscript与JavaScript有一些...

    JavaScript和ActionScript的交互实现代码

    JavaScript 和 ActionScript 是两种在 Web 开发中常用于交互的脚本语言,分别在浏览器的前端(JavaScript)和 Adobe Flash Player(ActionScript)中运行。本文将详细介绍如何实现在 Flash 内容(ActionScript)与...

    CSS中文 Flash.ActionScript.as3.0 JavaScript 语言参考

    JavaScript是一种广泛使用的客户端脚本语言,常用于网页动态效果和与用户交互。JavaScript的基础包括变量、数据类型、运算符、流程控制(条件语句、循环)、函数、对象和数组。进阶内容涵盖DOM操作(文档对象模型,...

    SWF(ActionScript3.0)与JavaScipt(JS)通信示例

    推荐对所有JavaScript与ActionScript之间的通信使用ExternalInterface。 在HTML页中使用JavaScript,可以调用FlashPlayer中的ActionScript函数。ActionScript函数可以返回一个值,JavaScript会立即接收它作为该调用...

    Actionscript中文帮助文档

    5. **时间轴和帧脚本**:ActionScript可以与时间轴结合使用,编写帧脚本控制动画和交互。 6. **ActionScript与XML/SWF/AAM整合**:ActionScript可以处理XML数据,与SWF(Shockwave Flash)文件进行交互,以及使用...

    ActionScript权威指南.pdf

    1. **基础语法**:包括变量、数据类型(如字符串、数值、布尔值、null和undefined)、运算符、流程控制(条件语句、循环结构)以及函数的使用。 2. **面向对象编程**:ActionScript 3.0完全支持面向对象编程,包括...

    Javascript,Actionscript3,css2,DHTML,JDOM,JQuery API开发文档打包下载

    这些文件包含了多个重要的IT技术领域的开发文档,涵盖了从前端到后端的重要编程语言和技术,包括JavaScript、ActionScript 3.0、CSS2、DHTML、JDOM以及jQuery API。接下来,我们将逐一深入探讨这些知识点。 1. **...

    flex中文帮助 ActionScript3.0中文帮助

    ActionScript 3.0 语言和组件参考概述Adobe Flex 2 语言参考ActionScript 3.0 语言和组件参考是适用于 Flash® Player 应用程序编程接口 (API) 的参考手册。 Adobe Flex 2 语言参考ActionScript 3.0 语言和组件...

    JavaScript与ActionScript3两者的同性与差异性

    而 ActionScript3,特别是与 Flash Player 结合使用时,操作的是 DisplayObject,这是 Adobe Flex 和 Flash 平台中的对象模型,主要用于动画、图形和交互式内容的创建。 其次,运行环境的差异也是关键。JavaScript ...

    ActionScript语句中文全解

    1. XML和JSON:ActionScript提供XML和JSON对象来处理这两种数据格式,方便与服务器进行数据交换。 2. URLLoader和URLRequest:用于加载网络资源,如文本、图像、XML等。 七、声音和视频 1. Sound和Video类:分别...

Global site tag (gtag.js) - Google Analytics