【问题标题】:Execute string comma character ',' as code执行字符串逗号字符','作为代码
【发布时间】:2018-11-29 15:21:57
【问题描述】:

我有这个代码块:

var comma_decoded = window.btoa(',');
var comma_encoded = window.atob(comma_decoded);

var log = eval(comma_encoded);

var x = 1 log y = 2;

console.log(x + ' ' + y);

但是,我无法将“,”字符作为代码执行。

我需要 '1 2' 输出,所以日志变量必须像逗号 (,) 一样工作

谢谢。

【问题讨论】:

  • x = 1 log y = 2 只会表示x = 1 log y = 2 并且永远是荒谬的。如果有什么你想要eval 整个事情作为“动态代码”。虽然我真的看不懂重点……
  • 是的,这完全不是它的工作方式或它原本打算如何工作的方式。你到底想做什么?您要解决的实际问题是什么?
  • 这听起来像是一个巨大的XY problem...
  • 这个问题毫无意义。你可以这样做 eval("var x = 1" + comma_encoded + "y = 2;") 这是合法的,但如果你这样做,你可能在做一些根本错误的事情。
  • 需要使用eval() 通常表明应用程序的结构存在问题,因为无法避免 eval() 的有效用例数量非常少。所以请描述一下这个函数会做什么以及为什么选择 eval() 而不是其他任何东西:new Function( 'var x = 1' + comma_encoded + 'y = 2; )()var [ x, y ] = JSON.parse( '[ 1, 2 ]' ); 等......

标签: javascript eval decode execution


【解决方案1】:

在 javascript 中,您不能将变量用作运算符或特定于语言的标记。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    相关资源
    最近更新 更多