if(!document.getElementById) return;

在js文件中定义函数时,在函数体开头都写一句“if(!document.getElementById) return;”这是啥意思呀,初学JavaScript,请大神赐教

阅读 3k
3 个回答
if(!document.getElementById) return;

如果不存在document.getElementById方法,就直接返回
现在浏览器都会实现这个方法的~
如果IE<5.5 不支持document.getElementById这个方法

! 操作符期望后面的操作数为一个boolean值,
任何对象,转成的boolean值都为true;
0 转为boolean为false,非0字符串为 false;
undefined/null 转为 false;
空字符串为 false,非空字符串为true;
NaN 转为false;

函数也是一个对象

document.getElementById为获取document对象的getElementById属性,如果存在这个属性那么返回属性指向的对象或值,否则返回undefined

此语句经常用于判断某个属性、方法是否在某个对象中存在,或检测某个对象是否支持某个方法

  1. 在 Node 下没得 document,对象,这句话会直接报错,所以肯定不是用来判断服务器端还是浏览器端的

  2. 在浏览器端,现在所有浏览器都有 document 对象并且都有 document.getElementById 方法

终上,这句话实际无效。

不支持该元素获取方法,那么直接return;提高了程序的健壮性。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题