JS中null和undefined值的区别

2021-01-05 06:58:50 字数 6080 阅读 6954

1楼:匿名用户

null和undefined都是javascript中的基本数据类型,但在使用上比较大的区别。

在类型上的区别typeof(null);//返回objecttypeof(undefined);//返回undefined在使用上的区别null代表数据项有定义,但是没有赋值,此时初始值为null(空)undefined代表数据项没有定义,也就没有初始值,因此也就是undefined(未定义)

document.documentelement.onclick//返回null

document.documentelement.on**ile//返回undefined

javascript中null和undefined的区别?

2楼:爱佳佳的恐龙

1.类型不一样:

console.log(typeof undefined);//undefined

console.log(typeofnull);//object2.转化为值时不一样:

undefined为nan ,null为0console.log(number(undefined));//nan

console.log(number(10+undefined));//nan

console.log(number(null));//0console.log(number(10+null));//103.

undefined===null;//falseundefined==null;//true

3楼:

在javascript中存在这样两种原始类型:null与undefined。这两种类型常常会使javascript的开发人员产生疑惑,在什么时候是null,什么时候又是undefined?

undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。

null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

js **

varovalue;

alert(ovalue==undefined);//output"true"

这段**显示为true,代表ovlaue的值即为undefined,因为我们没有初始化它。

js **

alert(null==document.getelementbyid('notexistelement'));

当页面上不存在id为"notexistelement"的dom节点时,这段**显示为"true",因为我们尝试获取一个不存在的对象。

js **

alert(typeofundefined);//output"undefined"

alert(typeofnull);//output"object"

第一行**很容易理解,undefined的类型为undefined;第二行**却让人疑惑,为什么null的类型又是object了呢?其实这是javascript最初实现的一个错误,后来被ecmascript沿用下来。在今天我们可以解释为,null即是一个不存在的对象的占位符,但是在实际编码时还是要注意这一特性。

js **

alert(null==undefined);//output"true"

ecmascript认为undefined是从null派生出来的,所以把它们定义为相等的。但是,如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?可以使用下面的两种方法。

js **

alert(null===undefined);//output"false"

alert(typeofnull==typeofundefined);//output"false"

使用typeof方法在前面已经讲过,null与undefined的类型是不一样的,所以输出"false"。而===代表绝对等于,在这里null === undefined输出false。

4楼:匿名用户

undefined表示

变量声明但未初始化时的值,

null表示准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null值表示一个空对象指针。

javascript(ecmascript标准)里共有5种基本类型:undefined, null, boolean, number, string,和一种复杂类型object。可以看到null和undefined分属不同的类型,未初始化定义的值用typeof检测出来是"undefined"(字符串),而null值用typeof检测出来是"object"(字符串)。

任何时候都不建议显式的设置一个变量为undefined,但是如果保存对象的变量还没有真正保存对象,应该设置成null。

实际上,undefined值是派生自null值的,ecmascript标准规定对二者进行相等性测试要返回true,即

alert(null==undefined);//true

5楼:犬瘟热

undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。

null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

拓展资料:javascript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为javascript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标准通用标记语言下的一个应用)网页上使用,用来给html网页增加动态功能。

在1995年时,由***scape公司的brendan eich,在网景导航者浏览器上首次设计实现而成。因为***scape与sun合作,***scape管理层希望它外**起来像java,因此取名为javascript。但实际上它的语法风格与self及scheme较为接近。

为了取得技术优势,微软推出了jscript,cenvi推出scriptease,与javascript同样可在浏览器上运行。为了统一规格,因为javascript兼容于ecma标准,因此也称为ecmascript。

6楼:匿名用户

它们都是javascript的基本数据类型之一

区别:undefined:当声明的变量还未被初始化时,变量的默认值为undefined。

null:用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

一般可以这么检验

vara=null

varb=undefined

varc;

console.log('**********==')

console.log(a==b)//true

console.log(a===b)//false

console.log(b===c)//注意:返回true

console.log('**********==')

console.log(a===null)//true

console.log(b===null)//false

console.log('**********==')

console.log(a===undefined)//false

console.log(b===undefined)//true

一般在条件if中,无论a是null还是undefined,都会这么使用

if(!a)

7楼:匿名用户

这个我喜欢用java中的内存

堆栈模型来解释(注:只是类比,javascript不是java,还有这是我自己的理解,我不知道有没有其他人是这么理解的)

null相当于在栈里有变量了,但是没有指向堆里的地址undefined是连栈里都没有

8楼:匿名用户

null是不存在

undefined错误、不明确、未定义

一般在js中判断空值的作法如下

if(s==null||s==undefined||s=="")

9楼:匿名用户

undefine是未定义的对象

null是定义的对象 但是没有实例 ....

可以理解为null是defined了的obj只是没有赋值或new

js中,null和undefined的区别? 20

10楼:屠龙阿九

undefined类型只有一

个值,即undefined。当声明的变量还未被初始化时,变量的默认值为

内undefined。

null类型也只有容一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

例1:js **:

var ovalue;

alert(ovalue == undefined); //output "true"

这段**显示为true,代表ovlaue的值即为undefined,因为我们没有初始化它。

例2:js **:

alert(null == document.getelementbyid('notexistelement'));

当页面上不存在id为"notexistelement"的dom节点时,这段**显示为"true",因为我们尝试获取一个不存在的对象。

例3:js **:

alert(typeof undefined); //output "undefined"

alert(typeof null); //output "object"

js中null和undefined的区别

11楼:

在javascript中存在这样两种原始类型:null与undefined。这两种类型常常会使javascript的开发人员产生疑惑,在什么时候是null,什么时候又是undefined?

undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。

null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

js **

varovalue;

alert(ovalue==undefined);//output"true"

这段**显示为true,代表ovlaue的值即为undefined,因为我们没有初始化它。

js **

alert(null==document.getelementbyid('notexistelement'));

当页面上不存在id为"notexistelement"的dom节点时,这段**显示为"true",因为我们尝试获取一个不存在的对象。

js **

alert(typeofundefined);//output"undefined"

alert(typeofnull);//output"object"

第一行**很容易理解,undefined的类型为undefined;第二行**却让人疑惑,为什么null的类型又是object了呢?其实这是javascript最初实现的一个错误,后来被ecmascript沿用下来。在今天我们可以解释为,null即是一个不存在的对象的占位符,但是在实际编码时还是要注意这一特性。

js **

alert(null==undefined);//output"true"

ecmascript认为undefined是从null派生出来的,所以把它们定义为相等的。但是,如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?可以使用下面的两种方法。

js **

alert(null===undefined);//output"false"

alert(typeofnull==typeofundefined);//output"false"

使用typeof方法在前面已经讲过,null与undefined的类型是不一样的,所以输出"false"。而===代表绝对等于,在这里null === undefined输出false。

js中null和有什么区别啊,js中null和""有区别吗

1楼 夏冰 结果上没有任何区别,都代表给str赋值一个空的结果, 但typeof 出来的结果,会有不同,str 时,typeof的结果为string,str null typeof出来的结果object。 2楼 匿名用户 var str1 null str引用为空 var str2 str引用一个空...

在Js中有没有数据类型null,JS中的变量==null 与变量=='';之间的差别

1楼 玄鸢 有的,二者区别如下 为null值的对象会被自动 undefined一般表示未定义 比如function test a test 这样执行a是undefined 所以输出undefined 2楼 匿名用户 不是数据类型,null表示空值,在session设置过期时,可以令其值为null 3...

java判断null,a和a,null的区别

1楼 匿名用户 java中不需要,因为java中有boolean类型。 当我们判断 i 1 时,如果写成了 i 1,是不会通过编译的。 当我们判断 flag true 时,我们只会写 if flag 而不会写 if flag true 。 当我们判断 flag false 时,我们只会写 if fl...