`
liuleigang
  • 浏览: 52510 次
  • 性别: 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 不存在。
分享到:
评论

相关推荐

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

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

    javaScript的数据类型

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

    Web前端开发技术-认识JavaScript的数据类型.pptx

    认识JavaScript的数据类型;学习目标;认识JavaScript的数据类型; 1.变量的数据类型;基本数据类型-数字型;认识JavaScript的数据类型;认识JavaScript的数据类型;认识JavaScript的数据类型;认识JavaScript的数据类型;...

    JavaScript中undefined和null的区别

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

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

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

    02 数据类型的转换.html

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

    JavaScript中的null和undefined用法解析

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

    【JavaScript源代码】JavaScript类型检测的方法实例教程.docx

    JavaScript类型检测的方法... JavaScript的基本类型分为原始基本类型和引用数据类型: 原始基本类型:  number string boolean null undefined symbol  引用数据类型:  Object Function Array Date R

    文章目录 一、javaScript 的几种数据类型 1、数字类型 2、字符串 3、布尔型 4、数组 5、null 和 undef

    javascript数据类型文章目录 一、javaScript 的几种数据类型 1、数字类型 2、字符串 3、布尔型 4、数组 5、null 和 undefined 6、对象类型 二、 类型转换 1、字符串转整数 2、字符串转小数 3、数字转字符串 4、布尔...

    JavaScript 动态网页实例 - 数据类型转换.rar

    基本数据类型有数值数据类型、字符串数据类型、逻辑数据类型以及undefined和 null 两个特殊的数据类型。在数值数据类型中,还有NaN等特殊值。JavaScript 是一种松散类型、动态类型的语言,在声明变量时无需指定数据...

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

    ECMAScript中有5中简单的数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number、String。 Undefined Undefined时全局变量的一个属性,它只有一个值即:undefined。当使用var声明变量但未对其初始化时,...

    js判断undefined类型示例代码

    } typeof 返回的是字符串,有六种可能:”number”、”string”、”boolean”、”object”、”function”、”undefined” 3.4 数据类型 ECMAScript中有 5种简单数据类型(也称为基本数据类型):Undefined、Null、...

    JavaScript数据类型详解

     JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。 typeof操作符  介于JavaScript是...

    JavaScript基础知识之数据类型

    数据类型 JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。 typeof操作符 介于...

    1902易海滔01JavaScript数据类型.docx

    字面量、变量、标识符 JavaScript的6种数据类型: ... Null 空值类型 Undefined 未定义类型 引用数据类型:Object 对象类型 JavaScript数据的强制类型转换 主要是将其他数据类型转换为String Number Boolean。

    JS数据类型分类及常用判断方法

    1.基本数据类型:Undefined、Null、Boolean、Number、String、Symbol(es6中新增) 2.引用类型(复杂数据类型):里面包含 function、Array、Date 等 判断数据类型的方法有几种 1.typeof 我相信typeof这个判断数据...

    JavaScript基本数据类型和引用类型的区别详解

    js基本数据类型包括:undefined,null,number,boolean,string.基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值 任何方法都无法改变一个基本类型的值,比如一个字符串: 通过这两个例子,我们会...

    跟我学习javascript的undefined与null

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

    JavaScript typeof, null, 和 undefined

    JavaScript typeof, null, ...你可以使用 typeof 操作符来检测变量的数据类型。 实例 typeof "John" // 返回 string typeof 3.14 // 返回 number typeof false // 返回 boolean typeof [1,2,3,4] // 返回 object

Global site tag (gtag.js) - Google Analytics