为了账号安全,请及时绑定邮箱和手机立即绑定

一道语法问题 - 判断参数是否为空?

一道语法问题 - 判断参数是否为空?

慕虎7371278 2019-04-14 10:33:42
先放代码:if(asdf){}如上代码,如果没有定义asdf参数时,会执行报错,但是下面的代码就不会报错,这是为什么?他们有什么区别?if(window.asdf){}
查看完整描述

2 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

第一个asdf是一个未声明的变量
第二个window.asdf的asdf是windows对象的属性,其值为undefined
js中,不存在的属性,其值为undefined。
                            
查看完整回答
反对 回复 2019-04-14
?
智慧大石

TA贡献1946条经验 获得超3个赞

使用var定义变量,即使用
varasdf=124;
和使用
asdf=124;
window.asdf=124;
是不同的,第一个方法定义的asdf属性不能使用delete,而第二种则是可以使用delete删除掉的属性。(不过很遗憾,使用eval定义的变量(第一种方式),依然可以使用delete删除)
猜测:两种写法实际上语义的确是完全不同的,第一种写法,定义的是一个变量,访问的也是变量;而第二种,则是定义和访问属性。
似乎并没有回答题主的问题……
                            
查看完整回答
反对 回复 2019-04-14
  • 2 回答
  • 0 关注
  • 328 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信