javascript类型系统--undefined和null全面了解__第1页
javascript类型系统--undefined和null全面了解__第2页
javascript类型系统--undefined和null全面了解__第3页
javascript类型系统--undefined和null全面了解__第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、javascript类型系统-undefined和null全面了解_ 前面的话 一般的程序语言,表示空的只有null,但javascript的设计者Brendan Eich却设计了一个undefined,这无疑增加了程序简单度,但这样做也是有肯定缘由的。本文将具体介绍javascript中的undefined和null 历史缘由1995年JavaScript诞生时,最初像Java一样,只设置了null作为表示”无”的值。依据C语言的传统,null被设计成可以自动转为0 但是,JavaScript的设计者Brendan Eich,觉得这样做还不够,有两个缘由。首先,null像在Java里一样,被

2、当成一个对象。但是,JavaScript的值分成原始类型和对象类型两大类,Brendan Eich觉得表示”无”的值最好不是对象。其次,JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往是自动转换类型或者悄悄地失败。Brendan Eich觉得,假如null自动转为0,很不简单发觉错误 因此,Brendan Eich又设计了一个undefined。他是这样区分的:null是一个表示”无”的对象,转为数值时为0;undefined是一个表示”无”的原始值,转为数值时为NaN 但是,目前null和undefined基本是同义的,都是原始类型,且只有一些微小的差别 und

3、efinedUndefined类型只有一个值,就是undefined。当声明的变量未初始化时,该变量的默认值是undefined。所以一般地,undefined表示变量没有初始化 var test;/undefined console.log(test = undefined);/true var test = undefined;/undefined 对于尚未声明过的变量只能执行一项操作,用法typeof操作符检测其数据类型,但严格模式下会导致错误 typeof(test);/undefined 【消失场景】 【1】已声明未赋值的变量 【2】猎取对象不存在的属性 【3】无返回值的函数的执行结

4、果 【4】函数的参数没有传入 【5】void(expression) var i; console.log(i);/undefined var o = ; console.log(o.p);/undefined function f(); console.log(f();/undefined function f(x)return x; console.log(f();/undefined console.log(void(0);/undefined 【类型转换】 Boolean(undefined): false Number(undefined): NaN String(undefined

5、):undefined null Null类型只有一个值,就是null。null是javascript语言的关键字,它表示一个特别值,常用来描述空值 规律角度看,null值表示一个空对象指针 留意null是空对象指针,而是空数组,是空对象,三者不相同 console.log(typeof null);/object 尽管null和undefined是不同的,但它们都表示值的空缺,null表示空值,undefined表示未定义。两者往往可以互换。推断相等运算符=认为两者是相等的 console.log(null = undefined);/true 事实上,由于undefined和null不是构造器类型,所以它们没有任何的属性和方法,用法.和来存取这两个值的成员或方法都会产生一个类型错误 【类型转换】 Boolean(null): false Number(null): 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论