javascript,如果值未定义,是否会忽略它?

javascript,如果值未定义,是否会忽略它?,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

不确定我是否理解这个javascript

<!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}