【问题标题】:Cannot use 'in' operator to search for .... in undefined无法使用 'in' 运算符搜索 .... in undefined
【发布时间】:2013-03-03 14:48:21
【问题描述】:

我有以下代码:

function sendAjax(myData){
  $.ajax({
      type: myData["verb"],
      url: "url" in myData["url"] ? myData["url"] : "/default123",
      //..............

如果我没有将“url”作为密钥传递,那么我将收到“Uncaught TypeError: Cannot use 'in' operator to search for 'url' in undefined”的错误。

我该如何摆脱它?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    你是这个意思吗?

    url: myData["url"] || "/default123",
    

    【讨论】:

    • 当然,但是使用“in”操作符不是更好吗?
    • 您可以使用 in (并且可能为了清楚起见就这个答案争论不休),但是如果 myData['url'] 没有,您在问题中使用它会导致错误t 存在(意味着它将是undefined)。到目前为止,这里的其他答案告诉您如何根据您似乎正在尝试做的事情来使用 in
    • @AlanDert 这是更少的代码,通常如果该对象属性不存在,那么它会可靠地解析 falsy。
    【解决方案2】:

    url : "url" in myData ? myData["url"] : "/default123"

    【讨论】:

      猜你喜欢
      • 2016-03-03
      • 2013-01-15
      • 1970-01-01
      • 2018-05-02
      • 2018-01-10
      • 2019-10-10
      • 2018-07-06
      • 2021-01-23
      • 2015-02-19
      相关资源
      最近更新 更多