gpt4 book ai didi

javascript - 如何检测 javascript 中无效属性的使用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:22:11 26 4
gpt4 key购买 nike

我正在学习 Javascript 并编写了以下代码:

if (mystring.len > 0) {
// do stuff
}

我不小心用了 .len 而不是 .length。令我惊讶的是,没有出现错误。 mystring.len 返回了 undefined,这使得比较失败,但代码继续运行。我更愿意提出一个实际的错误,这样我就可以修复代码。添加“use strict”没有帮助,jslint 也没有帮助。

我知道有一些方法可以主动检查属性是否存在,但这不是我要找的。当我在属性名称中输入错误时,我希望 Javascript 告诉我。

在这种情况下,有没有办法让 Javascript 报错?

最佳答案

不,这就是 JavaScript 的工作方式,而且非常有用。谁说检查 len 是需要修复的东西?考虑:

if(mystring.len === undefined) {
mystring.len = "Test";
}

你能做的最好的事情就是在使用它之前简单地检查它是否被定义:

if(mystring.len !== undefined) {
}

我很欣赏它的奇怪之处,以及它如何让人感觉不可靠(最初来自 C# 背景),但不幸的是,您无能为力。 JavaScript 区分大小写的事实使这更加令人沮丧。不过,您将学会忍受它!

如果您真的很想运行一些静态分析,那么您可以考虑创建一个转译器(例如 Babel)扩展来运行这种分析——但是如果您曾经期望某些东西是undefined<,那将变得非常困难 我发现这是常见的地方。

编辑

这是一个真实的例子,我会在 undefined 有用的地方使用它。我正在与需要将资料从一个位置移动到另一个位置的图书馆合作。除非指定了原始位置,否则它无法执行此操作,因此我可能会编写如下内容,如果由于某种原因没有值,则初始化值:

function update(node) {
if(node.x === undefined) { node.x = 0; }
node.y = node.y || 0; // This is the shorthand way I'd actually write it

// Do some other stuff
};

关于javascript - 如何检测 javascript 中无效属性的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35848404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com