JScript中的undefined和"undefined"的区别


Posted in Javascript onMarch 08, 2007

JScript中用于表示未定义的undefined标识符到底是表示什么未定义?它和"undefined"(包括"在内)又有什么区别和联系呢?为什么有的时候可以使用undefined来和变量做比较,而有的时候又不行呢?

    underfined"undefined"的区别大家一眼就能看出来。在一般的认知下,我们认为undefined是JScript提供的一个"关键字",而"undefined"却毫无悬念的就是一个字符串,只是引号内的内容长得和undefined一个样。undefined"undefined"的区别虽然是十分明显的,但它们的联系也是紧密的。

    仔细阅读JScript手册,其实这个underfined是一个"已定义"的Global值,而不是它的字面意义所表达的未定义。我们看下面这个代码示例,很有趣:

JScript中的undefined和&quot;undefined&quot;的区别JScript中的undefined和&quot;undefined&quot;的区别<script language="javascript">JScript中的undefined和&quot;undefined&quot;的区别
JScript中的undefined和&quot;undefined&quot;的区别alert(undefined);
JScript中的undefined和&quot;undefined&quot;的区别alert(variable);
JScript中的undefined和&quot;undefined&quot;的区别
</script>

    执行的结果是:
    JScript中的undefined和&quot;undefined&quot;的区别

    我们稍微修改一下上面的代码,添加一个typeof调用来看看:   

JScript中的undefined和&quot;undefined&quot;的区别JScript中的undefined和&quot;undefined&quot;的区别<script language="javascript">JScript中的undefined和&quot;undefined&quot;的区别
JScript中的undefined和&quot;undefined&quot;的区别alert(typeof undefined);
JScript中的undefined和&quot;undefined&quot;的区别alert(typeof variable);
JScript中的undefined和&quot;undefined&quot;的区别
</script>

    这下结果应该是什么呢?显示"object""undefined"吗?当然不是了,两个alert调用都将显示"undefined"

    所以undefined是脚本引擎定义的一个常量,它在脚本引擎初始化完毕后存在。它的实际作用是用来表示一个已定义的变量的未初始化状态(uninitialized),比如var i;,这时这个i的值就是undefined,而i是实实在在define了的,只是未初始化。这时我们就可以写这样的表达式来对i做判断,比如if ( i == undefined )。如果从未在代码中出现过的变量被使用,这时的未定义的概念就是不undefined所描述的未初始化了,而是说明该变量完全未被登记到脚本引擎的上下文中。使用类似if ( abc == undefined )的语句,将得到类似上图中的第二个错误提示。

    在实际使用中,如果使用typeof来判断变量是否未定义,是可以完全兼容未定义(undefined)未初始化(uninitialized)两种情况的,只是很多时我不喜欢使用 if ( typeof xxx == 'undefined' ) 这样的写法,因为literal的字符串容易拼写错误,对用习惯了的强类型语言的角度来看也显得不专业。

Javascript 相关文章推荐
jquery.Jwin.js 基于jquery的弹出层插件代码
May 23 Javascript
jQuery中:radio选择器用法实例
Jan 03 Javascript
浅析jQuery Mobile的初始化事件
Dec 03 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 Javascript
AngularJS中isolate scope的用法分析
Nov 22 Javascript
JS异步文件分片断点上传的实现思路
Dec 25 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
Feb 05 Javascript
web前端页面生成exe可执行文件的方法
Feb 08 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
Mar 27 Javascript
JavaScript ES6箭头函数使用指南
Dec 30 Javascript
浅谈JS中几种轻松处理'this'指向方式
Sep 16 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
JavaScript语句可以不以;结尾的烦恼
Mar 08 #Javascript
JScript中的&quot;this&quot;关键字使用方式补充材料
Mar 08 #Javascript
function, new function, new Function之间的区别
Mar 08 #Javascript
JavaScript中this关键字使用方法详解
Mar 08 #Javascript
区分JS中的undefined,null,&quot;&quot;,0和false
Mar 08 #Javascript
在JavaScript中使用inline函数的问题
Mar 08 #Javascript
JS类中定义原型方法的两种实现的区别
Mar 08 #Javascript
You might like
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
Yii核心验证器api详解
2016/11/23 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
JavaScript Date对象使用总结
2009/05/14 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
Python制作刷网页流量工具
2017/04/23 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
python实现共轭梯度法
2019/07/03 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
宣传策划类求职信范文
2014/01/31 职场文书
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
离职报告范文
2014/11/04 职场文书
创卫工作总结2015
2015/04/22 职场文书