undefined还是”undefined”

广告位招租
扫码页面底部二维码联系

这是Javascript中的一个非常小的【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net问题,这里单独拿出来讲,是对我自己在使用本文版权归作者所有,未经授权不得转载。【原创内容,转载请注明出处】中的一个强化,因为我自己就经常搞错。到底著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。是undefined还是”u【访问 www.tangshuang.net 获取更多精彩内容】本文作者:唐霜,转载请注明出处。ndefined”呢?

未经授权,禁止复制转载。未经授权,禁止复制转载。

首先,我们要搞明白什么是undefine原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.netd。这里有一篇文章,详细的阐述了undefined的由来(【原创不易,请尊重版权】【作者:唐霜】和null有关),并且说明了一些使用un【版权所有,侵权必究】【作者:唐霜】defined的情况。

【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net【版权所有,侵权必究】

中文翻译过来,undefined就是“没【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.net定义”,这种语境也非常容易理解:本来应该本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。有的,结果要用的时候却没有,不管是你故意未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net漏掉了还是不小心忘记了,总之它原本应该被【本文受版权保护】转载请注明出处:www.tangshuang.net定义好的,结果却没有定义好。打个比喻就是【关注微信公众号:wwwtangshuangnet】本文版权归作者所有,未经授权不得转载。,我想用一把钳子,打开装钳子的盒子,结果【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】却没要找到钳子,本来应该有的,我现在要用著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。,却没找到!

【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net

在使用中是什么情况呢?

【访问 www.tangshuang.net 获取更多精彩内容】著作权归作者所有,禁止商业用途转载。

(1)变量被声明了,但没有赋值时,就等于原创内容,盗版必究。未经授权,禁止复制转载。undefined。

原创内容,盗版必究。转载请注明出处:www.tangshuang.net【关注微信公众号:wwwtangshuangnet】原创内容,盗版必究。

(2) 调用函数时,应该提供的参数没有提未经授权,禁止复制转载。【版权所有,侵权必究】供,该参数等于undefined。

【作者:唐霜】【本文首发于唐霜的博客】

(3)对象没有赋值的属性,该属性的值为u转载请注明出处:www.tangshuang.net【版权所有,侵权必究】ndefined。

未经授权,禁止复制转载。【转载请注明来源】

(4)函数没有返回值时,默认返回unde【原创内容,转载请注明出处】【本文首发于唐霜的博客】fined。

【未经授权禁止转载】【版权所有】唐霜 www.tangshuang.net【本文受版权保护】
【作者:唐霜】【原创不易,请尊重版权】【转载请注明来源】

第一种,比如:

【关注微信公众号:wwwtangshuangnet】转载请注明出处:www.tangshuang.net【关注微信公众号:wwwtangshuangnet】
var num
5 + num // NaN

上面这个情况我们是很少出现的,如果出现了本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】,就会得到NaN的结果,这是因为这个时候原创内容,盗版必究。【访问 www.tangshuang.net 获取更多精彩内容】num=undefined,undefi【本文首发于唐霜的博客】【访问 www.tangshuang.net 获取更多精彩内容】ned不能和数字相加。

【作者:唐霜】著作权归作者所有,禁止商业用途转载。【转载请注明来源】【转载请注明来源】

第二种情况,比如:

本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net
function get(param) { 
  return param
}
var value = get()

这里在使用的时候,我们没有给get()函【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。数传递参数,而Javascript中不像【版权所有】唐霜 www.tangshuang.net【转载请注明来源】php中一样,可以在声明时声明为get(parm = 6),给一个初始值,Javascript这个【未经授权禁止转载】【本文首发于唐霜的博客】初始值是无效的(ES6已经支持这种初始赋著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】值,而且初始值可以是已经定义好的变量),【版权所有】唐霜 www.tangshuang.net【转载请注明来源】所以,要设定初始值的处理办法是如下:

原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。【作者:唐霜】【本文受版权保护】
function get(parm) {
  if(parm === undefined) {
    parm = 6
  }
}

这里你就可以非常明白的看到,当没有赋予变【未经授权禁止转载】原创内容,盗版必究。量时,该参数为undefined。

【转载请注明来源】【未经授权禁止转载】【本文受版权保护】原创内容,盗版必究。

第三种情况,比如:

未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。【转载请注明来源】【版权所有】唐霜 www.tangshuang.net
var obj = {}
var obj_id = obj.id

这个时候,obj.id=undefine【访问 www.tangshuang.net 获取更多精彩内容】【原创不易,请尊重版权】d。

本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。

第四种情况,比如:

【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】
var value = 5
function get(num) {
  value += num
}
var a = get(2)

这个时候你就会发现,a=undefine【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。d,而value=7,这是因为funct【原创内容,转载请注明出处】原创内容,盗版必究。ion没有设置返回值,默认返回undef【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.netined。

【关注微信公众号:wwwtangshuangnet】【作者:唐霜】

关于undefined的条件判断

本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】【本文首发于唐霜的博客】

当直接使用变量进行全等判断时使用unde著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】fined,使用typeof判断时,使用【版权所有,侵权必究】【版权所有,侵权必究】”undefinedR【访问 www.tangshuang.net 获取更多精彩内容】【原创不易,请尊重版权】21;:

【本文首发于唐霜的博客】原创内容,盗版必究。
var a
if (a === undefined) {
  // 能做这样的判断,前提是a已经声明过了,如果a没有声明过,那么会报错
}
if (typeof a === "undefined") {
  // a可以未经声明
}
if (a == undefined) {
  // a须经声明
  // a=0时,也成立
}

所以,下次你在进行判断的时候,不要犯同样原创内容,盗版必究。本文版权归作者所有,未经授权不得转载。的错误。

未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。

2015-05-08 6044

为价值买单,打赏一杯咖啡

本文价值60.44RMB