Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 变量使用前的验证_Javascript_Html_Dom - Fatal编程技术网

Javascript 变量使用前的验证

Javascript 变量使用前的验证,javascript,html,dom,Javascript,Html,Dom,您应该多久验证或清理一次JavaScript中的变量?我偶尔会遇到我编写的代码,并且发现无法访问未定义的属性X或类似错误。因此,如果我使用的变量可能包含一个DOM对象,我会像下面这样进行清理 我的问题是,我应该多久验证一次可能存在的变量? 这是我在本周早些时候做的一件事的样本。它的目的是根据标题的文本值更改标题背景的背景颜色。请注意,\uuu spreadsarray是ES6排列的垫片 我现在做的是不好的练习吗 var rowColours = { "The Roadmap": "#5e

您应该多久验证或清理一次JavaScript中的变量?我偶尔会遇到我编写的代码,并且发现
无法访问未定义的属性X或类似错误。因此,如果我使用的变量可能包含一个DOM对象,我会像下面这样进行清理

我的问题是,我应该多久验证一次可能存在的变量?

这是我在本周早些时候做的一件事的样本。它的目的是根据标题的文本值更改标题背景的背景颜色。请注意,
\uuu spreadsarray
是ES6排列的垫片

我现在做的是不好的练习吗

var rowColours = {
    "The Roadmap": "#5e4c79",
    // ...
    "Employee Engagement": "#00275e",
    "Stakeholder Engagement": "#00275e"
};
var sections = __spreadArrays(document.querySelectorAll(".ms-webpartPage-root .ms-webpartzone-cell"));
sections.forEach(function (o) {
    var titleBar = o.querySelector(".ms-webpart-chrome-title");
    if (!(titleBar instanceof HTMLElement))
        return;
    var titleText = titleBar ? titleBar.innerText.trim() : "";
    if (!rowColours[titleText])
        return;
    var header = o.querySelector(".ms-webpart-chrome-title > [title]");
    if (!(header instanceof HTMLElement))
        return;
    header.style.background = "linear-gradient(to right, " + rowColours[titleText] + " 50%, white 98%)";
});

始终如此,但您可以从其他工具中获得一些优势

没有完美的解决方案,但您应该考虑使用<代码> Typescript <代码>,以帮助您在开发/构建时获得这样的用例,并创建一些测试来保证您的合同是最新的。 作为替代方案,您可以使用以下内容:

var header=o.querySelector(“.ms Web部件chrome title>[title]”);
var newValue=“线性渐变(向右,“+rowcolors[titleText]+”50%,白色98%)”;
HtmleElement的头实例(&header.style.background=newValue)

我希望您会觉得这很有用。

始终如此,但您可以从其他工具中获得一些优势

没有完美的解决方案,但您应该考虑使用<代码> Typescript <代码>,以帮助您在开发/构建时获得这样的用例,并创建一些测试来保证您的合同是最新的。 作为替代方案,您可以使用以下内容:

var header=o.querySelector(“.ms Web部件chrome title>[title]”);
var newValue=“线性渐变(向右,“+rowcolors[titleText]+”50%,白色98%)”;
HtmleElement的头实例(&header.style.background=newValue)

我希望你觉得这有用。

谢谢你的提示。我通常使用TypeScript,但我觉得我没有用到它的最大容量。谢谢你的提示。我通常使用TypeScript,但我觉得我没有充分利用它。