`
liuleigang
  • 浏览: 54699 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

js:数据类型null与undefined

    博客分类:
  • AJAX
阅读更多
javascript:数据类型null与undefined

我们知道,javascript是一种泛类型的语言。泛类型意味着不必显式定义变量的数据类型。事实上,我们无法在 javascript 上明确地定义数据类型。而只能通过var语句显示声明变量:var myvar;
或这样隐式声明变量:myvar=myvarValue(省略var,在声明的同时初始化)。

javascript 有三种基本数据类型(字符串、数值、布尔 ),两种引用数据类型(对象、数组)和两种特殊数据类型(Null 、Undefined )。对于基本数据类型和引用数据类型我们很好理解。对于特殊数据类型Null和Undefined,常常会引起我们的一些疑惑。

在 Javascript 中数据类型 Null 只有一个值:null。如果一个变量的值为null ,那么表示该变量没有保存有效的数、字符串、Boolean、数组或对象,null与vbscript中Empty的概念不相同(Empty指未初始化的变量值)。因此,我们可以通过给一个变量赋 null 值来清除变量的内容。

考查下面的代码:

function test1()
{
var a=null;
alert("typeof(a):"+typeof(a));
alert("a==0:"+(a==0));
}

结果显示:typeof(null)返回的对象类型为Object,而非类型null。这点潜在的混淆是为了向下兼容。同时,在 Javascript 中,null 与 0 不相等。

如果已声明了一个变量但还没有初始化,那么该变量的值就是 undefined。这与vbscript中Empty的概念是相同的。

如下情况使返回 undefined 值:
1、对象属性不存在;
2、声明了变量但从未赋值。

//注意:很多人常犯的一个错误是:当他定义一个变量的时候未初始化,想当然地认为该变量的默认值为数字0字符串""。

我们在javascript中如何判断一个变量是否存在,可以使用如下方法:

function test2()
{
var a;
alert(typeof(a)==undefined);//false
alert(typeof(a)=="undefined");//true
alert(a==undefined);//true
}


//注意:我们可以通过与undefined做比较测试一个变量是否初始化,但不能通过与 undefined 做比较来测试一个变量是否存在,而只能通过typeof(variable)=="undefined"来判断!

下面的例子将证明我的这一提示的正确性:

function test3()
{
var a;
//alert(b==undefined);//出现错误:'b'未定义
alert(typeof(b)=="undefined");//true
}

undefined 值与null做比较,考查下面的代码:

<script language="javascript">
function myObject(prop1,prop2)
{
this.prop1=prop1;
this.prop2=prop2;
}
var myObj=new myObject(null,"test");
alert("myObj.prop1==null:"+(myObj.prop1==null));
alert("myObj.prop1==undefined:"+(myObj.prop1==undefined));
alert("myObj.prop2==undefined:"+(myObj.prop2==undefined));
alert("myObj.prop3==undefined:"+(myObj.prop3==undefined));

var myobjProps="";
for(prop in myObj)
myobjProps+=prop+",";
alert("myObject的属性有:"+myobjProps);

alert("myObject.prop3 exists?:"+(("prop3" in myObj)?"YES":"NO"));
//要检查一个对象属性是否存在,可以in 运算符。
</script>

总结:undefined 值与null做比较,如下情况时,比较的结果为 true:
1、属性 myObj.prop1 包含null 值;
2、属性 myObj.prop3 不存在。
分享到:
评论

相关推荐

    js判断undefined类型,undefined,null,NaN的区别

    在 JavaScript 中,undefined 是一个基本数据类型,表示变量未被声明或未被赋值。例如,变量 a 未被声明时,typeof a 将返回 "undefined"。需要注意的是,undefined 不是一个常量,可以被赋值为其他值。 在判断一个...

    JavaScript程序设计课件:数据类型转换.pptx

    在这份"JavaScript程序设计课件:数据类型转换"中,主要讲解了如何在JavaScript中进行数据类型的转换,主要包括获取数据类型的方法以及三种主要的数据类型转换:字符串转换、数字转换和布尔型转换。 首先,了解数据...

    详解javascript中原始数据类型Null和Undefined

    但是,本文将更多聚焦独特的原始数据类型Null和Undefined,是什么让他们如此相似,却又似是而非。 一、理解Null和Undefined 在JavaScript中,null是字面量同时也是语言中的关键字,用来表示无法识别的对象值。...

    javaScript的数据类型

    ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和 String。还有 1种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的。ECMAScript 不支持任何创建...

    js判断undefined类型,undefined,null, 的区别详细解析

    js判断undefined类型 今天使用showModalDialog打开页面,返回值时。当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined所以自作聪明判断  var reValue=window.showModalDialog(“”,””,””); ...

    请注意: NaN 的数据类型是数字 数组的数据类型是对象 日期的数据类型是对象 null 的数据类型是 object 未定义变

    在 JavaScript 中有 5 种不同的可以包含值的数据类型: ● string ● number ● boolean ● object ● function 有 6 种类型的对象: ● Object ● Date ● Array ● String ● Number ● Boolean 以及 2 种不能包含...

    JavaScript中Null与Undefined的区别解析

    JavaScript中Null与Undefined的区别解析主要涉及两种特殊数据类型:Null和Undefined。这两种类型是JavaScript中的原始类型,它们经常会使开发者混淆,尤其是在变量的赋值和比较操作中。本文将通过多个实例,详细解释...

    JavaScript中undefined和null的区别

    下面针对这两个数据类型的异同做一下详细的比较。 1.undefined和null在if语句中,都会被自动转为false,相等运算符直接报告两者相等。 !null==!undefined==true 2.null表示”没有对象”,即该处不应该有值。典型用法...

    头歌教学实践平台 Web前端开发基础 JavaScript 学习手册二:JS 数据类型

    本教程“头歌教学实践平台 Web前端开发基础 JavaScript 学习手册二:JS 数据类型”深入浅出地介绍了JavaScript中的各种数据类型,这对于理解代码逻辑和优化性能至关重要。 在JavaScript中,数据类型主要分为两大类...

    02 数据类型的转换.html

    数据类型:基本类型:数字number、字符串:string、布尔:boolean、null、undefined 引用类型:数组:array、对象:object、函数:function 转成数字对象:强类型、显示转换:强制转换成数字类型。Number() ...

    Javascript类型系统之undefined和null浅析_.docx

    与 `undefined` 相比,`null` 是一个表示“空值”的关键字,它被设计为一个空对象指针,尽管在 JavaScript 中它的类型标识为 `'object'`。这是一个历史遗留问题,因为在 JavaScript 最初的设计中,`null` 被认为是一...

    JavaScript中的null和undefined用法解析

    null和undefined属于js中两种不同的基本数据类型,都可以表示“没有”,含义非常相似。将一个变量赋值为undefined或null,老实说,语法效果几乎没区别。并且在if语句的判断条件中,它们都会自动转为false,相等...

    JavaScript的数据类型问题

    JavaScript是一种广泛用于网页和网络应用的轻量级脚本语言,尤其在前端开发中起着核心作用。在理解和编写JavaScript代码时,...希望这些详细解释能帮你理清JavaScript数据类型的概念,让你在编写代码时更加得心应手。

    JavaScript中null与undefined分析

    1. **数据类型不同**:`undefined`是一种原始类型的值,而`null`则被看作是对象类型(尽管它不是真正意义上的对象)。 2. **用途不同**:`undefined`通常用于表示未定义的状态,而`null`用于表示有意设置为空的值。 ...

    JS 使用 typeof 获取数据类型

    这篇博客“JS 使用 typeof 获取数据类型”深入探讨了如何利用`typeof`来识别和处理不同类型的JavaScript数据。 首先,`typeof`返回的是一个字符串,这个字符串描述了变量的类型。它适用于原始数据类型(如`...

    JS 数据类型转换

    在提供的链接中,可能涉及到JavaScript数据类型转换的实际应用和一些技巧,例如如何正确处理不同类型的数据,避免类型转换带来的意外行为。`demo.html`文件可能是演示这些概念的一个实例,通过运行和分析代码,你...

    JavaScript基本类型值-Undefined、Null、Boolean

    它具有多种数据类型,其中基本数据类型主要包含Undefined、Null、Boolean、Number和String五种。本文将详细介绍这五种基本数据类型中的Undefined、Null和Boolean类型。 首先来看Undefined类型。Undefined在...

    js中 关于undefined和null的区别介绍.docx

    在JavaScript编程语言中,`undefined`和`null`是两种不同的数据类型,它们虽然在某些情况下可能被视为等价,但有着本质的区别。了解这两者的差异对于编写健壮的JavaScript代码至关重要。 首先,`undefined`是一种...

Global site tag (gtag.js) - Google Analytics