您不需要typeof
但您确实需要一个if
语句或其他一些流控制。
var el = document.querySelector('div#summary-item div.description');
var data = "";
if (el)
data = el.innerHTML;
或者这里使用条件运算符:
var el = document.querySelector('div#summary-item div.description');
var data = el ? el.innerHTML : "";
从技术上讲,你可以逃脱不使用流控制语句或表达使用具有.innerHTML
属性的对象。
var data = (document.querySelector('div#summary-item div.description') || {innerHTML:""}).innerHTML;
但我认为这是丑陋的。语句是if
语言的一部分。不知道为什么你想避免它。
当然,如果它真的困扰你,你总是可以使用一个将它抽象出来的函数。
function htmlFromElem(selector) {
var el = document.querySelector(selector);
return el ? el.innerHTML : "";
}
然后使用它是这样的:
var data = htmlFromElem('div#summary-item div.description')