网页出现undefined是什么意思(网页undefined是什么意思)

网页出现undefined是什么意思(网页undefined是什么意思)

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

最近上网出现了一个奇怪的现象。浏览百度贴吧的时候。出现undefined。那么这个undefined到底是什么意思呢?

undefined是一个特殊值。通常用于指示变量尚未赋值。对未定义值的引用返回特殊值。其实大多数计算机语言。只有一个表示"无"的值。比如。C语言的NULL。Java语言的null。Python语言的None。Ruby语言的nil。

但有一种语言是例外的。JavaScript语言居然有两个表示"无"的值:undefined和null。这是为什么?undefined 和null有什么区别呢?

一。相似性

在JavaScript中。将一个变量赋值为undefined或null。实话说。二者几乎没区别。

var a = undefined;

var a = null;

上面代码中。a变量分别被赋值为undefined和null。这两种写法效果几乎是一样的。

undefined和null在if语句中。都会被自动转为false。相等运算符甚至直接报告两者相等。

if (!undefined)
console.log('undefined is false');
// undefined is false

if (!null)
console.log('null is false');
// null is false

undefined == null
// true

上面代码说明。两者的行为是何等相似!

既然undefined和null的含义与用法都差不多。为什么要同时设置两个这样的值?

二。真相揭秘

原来。这与JavaScript的历史有关。1995年JavaScript诞生时。最初像Java一样。只设置了null作为表示"无"的值。但是。JavaScript的设计者Brendan Eich。觉得这样做还不够。有两个原因。

首先。null像在Java里一样。被当成一个对象。但是。JavaScript的数据类型分成原始类型(primitive)和合成类型(complex)两大类。Brendan Eich觉得表示"无"的值最好不是对象。

其次。JavaScript的最初版本没有包括错误处理机制。发生数据类型不匹配时。往往是自动转换类型或者默默地失败。Brendan Eich觉得。如果null自动转为0。很不容易发现错误。

因此。Brendan Eich又设计了一个undefined。

三。目前的用法

但是。上面这样的区分。在实践中很快就被证明不可行。目前。null和undefined基本是同义的。只有一些细微的差别。

null表示"没有对象"。即该处不应该有值。典型用法是:

(1) 作为函数的参数。表示该函数的参数不是对象。

(2) 作为对象原型链的终点。

Object.getPrototypeOf(Object.prototype)
// null

undefined表示"缺少值"。就是此处应该有一个值。但是还没有定义。典型用法是:

(1)变量被声明了。但没有赋值时。就等于undefined。

(2) 调用函数时。应该提供的参数没有提供。该参数等于undefined。

(3)对象没有赋值的属性。该属性的值为undefined。

(4)函数没有返回值时。默认返回undefined。

var i;
i // undefined

function f(x){console.log(x)}
f() // undefined

var o = new Object();
o.p // undefined

var x = f();
x // undefined

分享到 :
相关推荐

香港高防服务器如何进行防御(香港高防服务器如何进行防御攻击)

香港高防服务器进行防御的方法:1。定期扫描香港高防服务器网络节点。排查安全隐患并进行...

qq邮箱格式有几种(qq邮箱格式是什么样子的)

大家好,今天来介绍qq邮箱格式有几种(qq邮箱的格式是什么样的)的问题,以下是渲大师...

导致香港服务器网络中断的因素有哪些(导致香港服务器网络中断的因素有哪些呢)

导致香港服务器网络中断的因素有:1。香港服务器网络服务商出现异常问题导致;2。香港服...

Linux包管理命令汇总:apt、yum、dnf和pkg

大多数现代的类Unix操作系统都提供了一种中心化的机制用来搜索和安装软件。软件通[&...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注