1.软文推荐

2.软文推荐

3.软文推荐

最近上网出现了一个奇怪的现象,浏览百度贴吧的时候,出现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

来源:qy.cn/zx/idc/829.html

本站声明:内容来源于网络,内容不代表本站立场,仅供阅读参考,文章版权归原作者“本公司cmy.cn”所有。如有侵权,请联系我们删除。

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们56dr_com,同时欢迎投稿传递力量。

相关文章 8

1

服务器ddos防(如何防御ddos攻击) 1分钟前

服务器ddos防护,是很多企业网站防御网络攻击的一种有效措施。目前许多服务器商都提供有ddos防御服务,如本公司ddos高防服务,BGP多线防...

2

美国站群服务器租用推荐(3美国站群服务器) 3分钟前

很多人选择站群机房肯定是选择美国站群服务器,IP多且便宜。站群,是站长利用搜索引擎自然优化规则搭建的多个网站的集合,通过搭建多...

3

双线游戏服务器租用什么配置会影响体验?(战双有哪些服务器) 6分钟前

购买时,这些参数直接决定双线游戏服务器租用的价格。针对游戏市场来讲,租赁的服务器的特性及其价钱是客户考虑到数最多的两问题。...

4

七夕独宠好礼,给你心仪的Ta兑个礼物带回家~(七夕专属礼物) 7分钟前

快来把这些好礼带回家吧 点击进入兑换好礼。 来源:juming.com/zx/15688.html 本站声明:内容来源于网络,内容不代表本站立场,仅供阅读参考,...

5

了解一下国内服务器托管商有哪些(外服都是中国人) 8分钟前

如果买了服务器想要得到更好的使用效果,那么进行服务器的托管是非常有必要的,不过相比起海外的服务器托管来说,现在国内的服务器...

6

简单好用的云服务器多少钱(好用的云服务) 10分钟前

简单好用的云服务器多少钱?现在云服务商有很多,其中简单好用、性价高的云服务器,推荐本公司,知名老牌云服务提供商,19年专业服务...

7

海外服务器费用贵吗?一般要多少钱?(租海外服务器一年多少钱) 12分钟前

海外服务器费用贵吗?一般要多少钱?海外不一样知名品牌的服务器租用价钱各不一样,中国提供海外服务器商品的店家标明的价钱也因配...

8

云存储的价格(云存储价格和规定) 13分钟前

云存储的价格是多少?不同的云存储服务产品价格各不相同,关键是看你选择哪种服务、哪家品牌以及购买的存储容量是多大。 以本公司自...