网页出现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

分享到 :
相关推荐

服务器带宽会影响流量吗(服务器带宽会影响流量吗)

渲大师提供的网络服务器连接网络带宽是10M私有。或是100M共享资源这类的数据信息。...

cdn跟云服务器有什么不同(cdn跟云服务器有什么不同)

cdn跟云服务器的区别:1.cdn是构建在现有网络基础之上的智能虚拟网络。而云服务[...

海外服务器有哪些优势(海外服务器有哪些优势和劣势)

海外服务器的优势有:1。海外服务器拥有充足的国际带宽。用户的访问速度快;2。海外服务...

独享机柜托管服务器更好吗(独享机柜托管服务器更好吗安全吗)

针对像企商在线那样的IDC托管服务提供商而言。服务水平扎实的另外。本身硬件配置基础设...

发表评论

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