gpt4 book ai didi

javascript - 如果我对 'Cannot read property ' *** *' of undefined' 没问题怎么办?

转载 作者:行者123 更新时间:2023-11-29 18:00:27 25 4
gpt4 key购买 nike

我有一些代码如下所示:

$scope.query.toLowerCase() != 1

如果未定义查询 - 控制台中会出现错误。实际上代码仍然会产生我想要的结果,但是处理错误的正确方法是什么?当然我可以提前检查变量——但这会导致更多的代码,不确定通过阅读更多代码来隐藏错误的好处。

最佳答案

Of course I can check the the variable in advance - but that will lead to more code

编写更多代码并不会使您的代码变差,除非您参加代码高尔夫比赛。如果您不处理错误和边缘情况,那么您的程序将不可靠。如果一行代码抛出错误,您的代码甚至可能会提前终止。

另一种处理可能的未定义属性的方法是定义一个默认值,而不是检查它是否为 undefined

($scope.query || "").toLowerCase() != 1       // this is enough to fix your expression

或更正式地

($scope.query === undefined ? "" : $scope.query).toLowerCase() != 1

这显然取决于您的目的。

另一个例子:

function add(a, b){
return a + (b || 0); // if b is falsy, assume b is 0
}

add(1, 2); // 3
add(1); // 1

Shortcircuiting在某些情况下非常有用,但请确保您确切了解它的工作原理,因为滥用它会产生意想不到的行为。

关于javascript - 如果我对 'Cannot read property ' *** *' of undefined' 没问题怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35336196/

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