gpt4 book ai didi

javascript - 为什么多功能代码行不会产生错误而只是停止执行?

转载 作者:行者123 更新时间:2023-12-03 04:00:55 25 4
gpt4 key购买 nike

我知道下面的代码行是可怕的编码,但我的问题是为什么这种类型的代码不会产生控制台错误,而只是停止执行?

示例:

假设有一个名为mySessionItem的 session 存储项,其值为JSON,其中包含属性myObjectProperty,则以下代码在 session 时执行时将起作用存储项已设置并且具有有效的 JSON。

let myVar = JSON.parse(sessionStorage.getItem("mySessionItem"))["myObjectProperty"] === "myValue" ? false : true; 

但是,如果 session 存储未设置,或设置为无效 JSON,或有效 JSON 但缺少属性 myProperty,则会出错并停止执行。

这是正常行为,也是我对如此糟糕的代码所期望的。然而,这不会产生控制台错误,因此极难追踪。

这是否有原因不会导致控制台错误,有什么方法可以强制它以编程方式生成错误,是否有任何简单的方法可以跟踪此类问题?

我在一个大型团队中工作,成员的编码能力水平各不相同,当这样的事情进入代码库时,我希望找到更好的方法来跟踪它们,因为它们在大型应用程序中可能非常难以捉摸,并且到处肆虐。

作为引用,我们的团队正在使用 Angular 2,它是通过 Angular CLI 使用 TypeScript 实现的。我不确定这些事情之一是否在生成错误的错误代码中发挥了作用,所以我想确保我强调了我们正在使用的工具。

最佳答案

您可以执行一些操作,例如在 Typescript 中为 session 对象创建一个类,然后尝试访问该属性,因为该类始终具有该属性。

> let myVar: boolean = new Session(JSON.parse(sessionStorage.getItem("mySessionItem"))).myObjectProperty === "myValue" ? false : true;

这使用了 Typescript 的一些类型安全功能,如果假设属性未设置或丢失,您可以控制构造函数中 session 对象发生的情况。

constructor(options: { myObjectProperty?: string } = {}){
this.myPropertyObject = options.myPropertyObject || '';
}

关于javascript - 为什么多功能代码行不会产生错误而只是停止执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44727762/

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