×

null和undefined的区别

null和undefined的区别(js 中null 和undefined的区别)

admin admin 发表于2023-10-23 22:38:17 浏览52 评论0

抢沙发发表评论

本文目录

js 中null 和undefined的区别

在JavaScript中存在这样两种原始类型:Null与Undefined。这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined?Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。var oValue; alert(oValue == undefined); //output “true“ 这段代码显示为true,代表oVlaue的值即为undefined,因为我们没有初始化它。null == document.getElementById(’notExistElement’)); 当页面上不存在id为“notExistElement“的DOM节点时,这段代码显示为“true“,因为我们尝试获取一个不存在的对象。typeof undefined); //output “undefined“ alert(typeof null); //output “object“ 第一行代码很容易理解,undefined的类型为Undefined;第二行代码却让人疑惑,为什么null的类型又是Object了呢?其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来。在今天我们可以解释为,null即是一个不存在的对象的占位符,但是在实际编码时还是要注意这一特性。null == undefined); //output “true“ ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。但是,如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?可以使用下面的两种方法。null === undefined); //output “false“ alert(typeof null == typeof undefined); //output “false“ 使用typeof方法在前面已经讲过,null与undefined的类型是不一样的,所以输出“false“。而===代表绝对等于,在这里null === undefined输出false。========================================================================================在javascript中什么情况出现下面三种情况: null undefined “ ” 文件1:null_undefined.html 文件2:null_undefined.js 1 null_undefined.html 【见文章评论一】 null_undefined.js var test = function() { alert(window.aiter2008); //弹出undefined window空间中没有aiter2008这个变量 alert(document.getElementById(“test_text1111“)); //null 在上面的null_undefined.html文件中没有test_text1111元素 var testText = document.getElementById(“test_text“).value; // test_text输入框中没有输入任何元素 alert(testText==““); //true alert(testText==null); //false } 这次测试可以得到结论: 一个对象中没有指定的变量,而要使用,会出现 undefined Html中没有的元素,通过document.getElementById(““)查找的结果为: null Html中有的元素,但是没有任何值,通过document.getElementById(““)查找的结果为:” ”; 不是null 2 null_undefined.html文件不变 null_undefined.js var test = function() { var testText = document.getElementById(“test_text“); var testName = testText.name; var testUn = testText.name11; alert(“test_text’s name::“+testName); // test_text’s name:: test_text alert(“test_text’s name11:::“+testUn); // test_text’s name11:::undefined } 结论 一个对象没有的属性,调用会出现: undefied 这和调用window的aiter2008属性一样本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/13202_2.htm

Javascript 中 null,NaN和undefined的区别总结

null 是指一个空白对象,即什么都没有、什么都不存在NaN是Not a Number(不是一个数字)的简称,即变量或表达式的值不是数字或可转化为数字的其他值undefined的意思就是未定义、未声明,任何未经声明的对象(如变量、函数等)都是undefined

javascript中null和undefined的区别

1.类型不一样:

console.log(typeOf undefined);//undefined

console.log(typeOf null);//object

2.转化为值时不一样:undefined为NaN ,null为0

console.log(Number(undefined));//NaN

console.log(Number(10+undefined));//NaN

console.log(Number(null));//0

console.log(Number(10+null));//10

3.undefined===null;//false

undefined==null;//true

扩展资料:

undefined,一个特殊值,通常用于指示变量尚未赋值。在高级程序设计语言设计应用程序时,用于指示变量尚未用单等号进行赋值(常量未定义)。

NULL是在计算中具有保留的值,用于指示指针不引用有效对象。程序通常使用空指针来表示条件,例如未知长度列表的结尾或未执行某些操作; 这种空指针的使用可以与可空类型和选项类型中的Nothing值进行比较。

空指针不应与未初始化的指针混淆:保证空指针与指向有效对象的任何指针进行比较。但是,根据语言和实现,未初始化的指针可能没有任何此类保证。它可能与其他有效指针相等; 或者它可能比较等于空指针。它可能在不同的时间做两件事。

参考资料:百度百科:null

百度百科:undefined

null和undefined的区别

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,即 1alert(null==undefined); // true

js中,null和undefined的区别

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值的区别

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

在类型上的区别

typeof(null); //返回Objecttypeof(undefined); //返回undefined

在使用上的区别

null代表数据项有定义,但是没有赋值,此时初始值为null(空)

undefined代表数据项没有定义,也就没有初始值,因此也就是undefined(未定义)

document.documentElement.onclick //返回nulldocument.documentElement.onSmile //返回undefined

为什么JS要分undefined和null,为不和其他语言一样都是一种类型代表(null)

这个是历史原因造成的,就是js的设计者觉得只用null来表示无,会使一些代码的错误难于被发现,所以又整出个undefined,后来证明这纯粹是他想多了。目前两者的用法基本上没有太大区别,null主要用于表示“没有对象”或者“空对象”,undefined主要用于表示“未定义的值”,相当于NaN。