在Javascript中使用(.code)的目的是什么?
我有一个Javascript代码,它运行带有reference.code的If语句。我到处寻找原因,但没有找到有用的答案。以下是一个例子:在Javascript中使用(.code)的目的是什么?,javascript,Javascript,我有一个Javascript代码,它运行带有reference.code的If语句。我到处寻找原因,但没有找到有用的答案。以下是一个例子: function X(Y) { if ((ord.status == JSON.stringify( (JSON.parse(ord.status).code == ordStatus.Del.code)){ //code here } } .code在这里不是“扩展名”。它是对Javascript对象的code属性的
function X(Y) {
if ((ord.status == JSON.stringify( (JSON.parse(ord.status).code == ordStatus.Del.code)){
//code here
}
}
.code
在这里不是“扩展名”。它是对Javascript对象的code
属性的引用
这里,ord.status
是一个字符串,可以将其解析为包含code
属性的Javascript对象
JSON.parse(ord.status)
将ord.status
字符串解析为Javascript对象。然后,.code
引用该对象中的code
属性。正如我所评论的,括号不匹配,这意味着这段JavaScript目前是无效的。但是,我将进行真诚的分析,并假设缺少的括号将出现在主体前面的if
表达式的末尾
由于您的问题似乎是关于将此.code
应用于它的if
语句,因此让我们仅分析表达式,以了解使用Mozilla的文档进行参考的情况。我们将使用假设方法m
替换//code here
,然后使用I
表示标识符,E
表示表达式,S
表示语句:
if ((ord.status == JSON.stringify( (JSON.parse(ord.status).code == ordStatus.Del.code)))){ m(); }
IF (( I . I == I . I ( ( I . I ( I . I ). I == I . I . I )))){ E(); } // lexing
IF ((I.I == I.I((I.I(I.I).I == I.I.I)))){ E(); } // remove spaces
IF ((E.I == E.I((E.I(E.I).I == E.I.I)))){ E(); } // get names from scope
IF ((E.I == E.I((E.I(E).I == E.I.I)))){ E(); } // member access
IF ((E.I == E.I((E(E).I == E.I.I)))){ E(); } // member access
IF ((E.I == E.I((E.I == E.I.I)))){ E(); } // function invoke
IF ((E.I == E.I((E == E.I.I)))){ E(); } // member access
IF ((E.I == E.I((E == E.I)))){ E(); } // member access
IF ((E.I == E.I((E == E)))){ E(); } // member access
IF ((E == E.I((E == E)))){ E(); } // member access
IF ((E == E((E == E)))){ E(); } // member access
IF ((E == E((E)))){ E(); } // equality check
IF ((E == E(E))){ E(); } // parentheses
IF ((E == E)){ E(); } // function invoke
IF ((E)){ E(); } // equality test
IF (E){ E(); } // parentheses
IF (E){ E; } // function invoke
IF (E){ S } // expression eval statement
IF (E) S // block statement
S // if statement
正如您在这里看到的,每次使用时,每个成员访问操作(
)都正确地应用于左侧的表达式和右侧的标识符。它没有应用于if
语句,并且if
语句被正确地解析为整个语句。尽管我确实添加了额外的括号以使您的答案有意义,但结果仍然是一样的,因为只有在右侧有太多括号时才会出现这种可能性。所谓“扩展名”,您是指像“.exe”或“.html”这样的“文件扩展名”吗在文件名的末尾?我建议阅读一些关于Javascript中对象的文档。我注意到一个问题:括号不匹配。应该有两个右括号来匹配左边的括号。你确定你发布了正确问题的答案吗?@Dummy根据对我先前答案(现已删除)的评论,OP似乎知道成员访问操作是什么。我对这个问题的下一个最好的解释是,他看到了一些奇怪的东西,关于它是如何被使用的。