null和undefined

      最近在自行研究JavaScript以及相关的知识,因为没有在网上能找到很是细致的相关知识,因此购买了JavaScript权威指南一书(第六版)。不得不说,人家淘宝团队真是厉害,厚厚一大本,翻译的很是不错,更好的是内容很是详细。值得有经验的开发人员观看。对于这个书的赞美就不说辣么多了,回到正题。前端

      在以前的JavaScript开发中,常常见到的一个关键字  null   我想程序员们都会对它绝对眼熟,无论是数据库仍是前端后台,  null 绝对是一个很是常见的关键字。程序员

       null是JavaScript语言的关键字,他表示的是一个特殊值,经常用来描述  “空值”  。对null执行 tyeof 预算,结果返回字符串  “object” ,也就是说,能够将null认为是一个特殊的对象值,含义是  “非对象”  。数据库

       但实际上,一般认为null 是它  自有类型的惟一一个 成员 。 他能够表示数字、字符串、和对象是“无值”的。数组

       JavaScript 还有第二个值来表示 “空值”  ---undefined   用未定义的值表示 更深层次的“空值” 。它是变量的一种取值,表示变量没有初始化,若是要查询对象属性或数组元素的值时返回 unfinished。引用没有提供实参的函数形参的值也只会获得  undefined   。 函数

        undefined是预约义的全局变量(它和null不同,他不是关键字),它的值就是“未定义” 。在ECMScripgt 3中,undefined是可读/写的变量能够给它赋任意值。 这个错误在ECMScript 5中进行了修正,在这个版本中的undefined只是可读的,若是使用typeof 运算符获得 undefined 的类型,则返回“undefined”, 代表这个值是这个类型的惟一成员。spa

        尽管 null 和 undefined 是不一样的,但它们都表示“值的空缺” ,二者每每能够互换,判断相等的运算符  “==”  认为二者是相等的  (要使用严格的相等运算符  “==”  来区分它们)。 在但愿值是  布尔类型  的地方它们的值都是假值。 和false 相相似。 null和undefined 都不包含任何实行和方法 。 实际上,使用“.”和“[]”来存取这两个值得成员方法都会产生一个类型错误。翻译

       你或许认为 undefined 是表示系统级的、出乎意料的或相似错误的值的空缺, 而null是表示程序级的、正常的或在乎料之中的值的空缺。 若是你想将它们赋值给变量或者属性,或将它们做为参数传入函数,最佳选择是使用null。对象

相关文章
相关标签/搜索