javascript,如果值未定义,是否会忽略它?
不确定我是否理解这个javascriptjavascript,如果值未定义,是否会忽略它?,javascript,Javascript,不确定我是否理解这个javascript <!DOCTYPE html> <html> <body> <div id="demo" style="width: 80px; height: 12px;">test</div> <script> var obj = {moduleId:"demo"}; var ret = changeElementHeig
<!DOCTYPE html>
<html>
<body>
<div id="demo" style="width: 80px; height: 12px;">test</div>
<script>
var obj = {moduleId:"demo"};
var ret = changeElementHeight(obj)
console.log(ret)
function changeElementHeight(t) {
var o = t.moduleId
, s = o && document.getElementById(o);
var n = void 0
, i = void 0
, r = void 0 === a || a
, l = t.viewHeight
, d = t.viewWidth
, c = t.height
, u = t.width
c && (n = parseInt(c, 10),
void 0 !== l && (n = n * 120 / parseInt(l, 10))),
u && (i = parseInt(u, 10),
void 0 !== d && (i = i * 200 / parseInt(d, 10))),
// will this Object.assign(); be called, or because the 'n' and 'i' are undefined, so that it is called but no effect ???
Object.assign(s.style, {
height: n + "px",
width: i && i + "px" || "auto"
});
var h = s.getBoundingClientRect()
var x = {
bottom: h.bottom,
height: h.height,
left: h.left,
right: h.right,
top: h.top,
width: h.width
};
return x
}
</script>
</body>
</html>
被调用以更新div的样式(此时n和i未定义)
似乎div的宽度受到影响,但高度不受影响:
{bottom: 38, height: 12, left: 8, right: 972, top: 26, width: 964}
好的,如果您有未定义的变量,那么将在控制台中抛出一个错误,并且没有,代码将不会继续执行 但是,如果定义了变量,但字符串为空,则代码将在此时执行和处理,但如果
n
为”
,则您将尝试将高度设置为px
,该值不是有效值,因此将忽略它(坏CSS不会引发错误),并继续使用以前的值
下面是一个更简单的示例:
document.querySelector(“div”).style.height=“+”px”//没有错误,就没有效果
document.querySelector(“div”).style.width=“200px”//作品
div{
位置:绝对位置;
高度:100px;
宽度:100px;
背景色:#808080;
}
Hello
{bottom: 38, height: 12, left: 8, right: 972, top: 26, width: 964}