sách gpt4 ăn đã đi

javascript - 相当于 JavaScript 中 Python 的 KeyError 异常?

In lại 作者:太空狗 更新时间:2023-10-29 20:54:16 24 4
mua khóa gpt4 giày nike

我正在尝试访问 JavaScript 对象中的某个成员。为此,我需要尝试几个关键值。

Ví dụ,Object['text/html'] 将为我提供 HTML 文档的导出链接。但是,并非此类型的每个对象都有一个 text/html key 对值。

在 Python 中,我会使用 Try-Catch block 解决这个问题,并出现 KeyError 异常。如果我可以在 javascript 中做类似的事情,比如在 Try-Catch block 中使用异常,那就太好了。

但是,如果存在替代方案而不是 try catch block ,它们确实可以实现相同的最终目标,我也想了解它们。

biên tập:

与使用函数相比,我更愿意使用异常。我这样做是因为 text/html 键可能不在那里,但它应该在那里。异常似乎更适合这种情况

câu trả lời hay nhất

当读取或写入不存在的属性时,Javascript 不会产生异常。读取它时,它只返回 không xác định。编写它时,它只是创建属性。

您可以创建自己的函数来测试该属性是否存在,如果不存在则抛出异常(但您必须在任何时候调用该函数),但 JS 不会从中产生异常就像您所要求的那样。


如果您想在 javascript 中测试某个对象上是否存在某个键,您可以将此结构与 TRONG 运算符结合使用:

var obj = {};
var key = "test";

if (key in obj) {
// key exists
} khác {
// key doesn't exist
}

如果您尝试读取一个不存在的键,您将得到 không xác định 作为值。

var obj = {};
var value = obj.test;

alert(value === undefined);

TRONG 运算符可以更好地告诉您 key 是否存在测试 không xác định bởi vì không xác định 是 a 的合法值存在的 key 。


在许多情况下,您可以控制键的值并且存在的键永远不会有假值,您也可以只检查键是否有真值:

var obj = {};
var obj.test = "hello";

if (obj.test) {
// key exists and has a truthy value
}

如果你想确保对象本身具有属性而不是它继承自的任何原型(prototype),那么你可以这样做:

var obj = {};
var obj.test = "hello";

if (obj.hasOwnProperty(test)) {
// key exists on the object itself (not only on the prototype)
}

关于javascript - 相当于 JavaScript 中 Python 的 KeyError 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19324294/

24 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress