gpt4 book ai didi

javascript - 在 javascript 序列表达式中声明变量

转载 作者:行者123 更新时间:2023-12-02 21:58:51 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以在 Javascript 的序列表达式中声明局部变量。我想将变量声明为序列表达式的一部分,而不是单独的语句。
例如,我想做这样的事情

temp = "1", var a,++i;

感谢您的帮助!

编辑 -我正在尝试检测 Javascript(以找出潜在的基于 DOM 的 XSS),上面的代码只是实际程序的一个片段。例如,我找到了一种使用三元运算符将 if 语句转换为表达式的方法,如 if (a === 2) {a = 1} else {a = 3} is converted to a === 2?一 = 1: 一 = 3;我想知道 var a = 2 是否也可以转换为表达式,以便将其添加到序列表达式中
至于我为什么要做这一切——我正在用我自己的一组语句替换 JS 程序中的赋值语句。如果我添加多个语句来代替一个语句,它会扰乱其余代码。因此我使用序列表达式来解决这个问题。
例如,在 for (var i = 0; i < 2; i++) {} 这样的 for 循环中,我不能用一堆分号分隔的语句替换 i =0。因此,我正在尝试使用序列运算符添加多个语句

最佳答案

确实,您必须以 var 关键字开始,后跟声明和半列。然后你就可以开始你的序列了。

如果您真的不喜欢它或不想使用半列(无论出于何种原因),您可以尝试制作匿名函数并将参数用作局部变量:

(function(temp, a, i){ i=a, i++ })("1", 1)

所以在 for 循环中你可以做类似的事情:

for (var i=function(){ /* any statement you want */; return 0 }(); i<10; i++) { /* ... */ }

希望对您有所帮助。

关于javascript - 在 javascript 序列表达式中声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17290240/

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