0

私はこのようにしたい:

var b = 2
var a = 1

var str = " && b == 2"

if (a == 1|str|) { some code }

コードに「str」を配置したいので、これを試しました:

document.write("<script lang='javascript'>" + "if (a == 1" + str + ") { some code }" + "</script>")

しかし、うまくいきませんでした。

4

3 に答える 3

2

あなたがしたいことは、次のように-コメントで述べられているように-を使用して行うことができますeval()

var b = 2
var a = 1

var str = " && b == 2"

if (eval("a == 1" + str) { //some code }

ただし、evalは悪い習慣と見なされます。これは、フィードされる文字列の正確な内容を知ることが非常に困難でeval()あり、したがってコードが何を実行するかが予測できないためです。

より良い解決策は、ブール変数を使用することです。

var b = 2;
var a = 1;

var bCorrect = (b == 2); // parentheses are not required, but do make it clearer.

if(a ==1 && bCorrect) { // some code}

これが良い解決策の作成に役立つことを願っています。幸運を!

于 2013-01-27T15:49:23.593 に答える
0

以下を使用できるはずです。

if (eval("a == 1" + str))

しかし、おそらくこれを行うためのより良い方法を思い付くことができます。a文字列の代わりに、 ?の値を取る関数を使用する必要があるかもしれません。

于 2013-01-27T15:47:34.403 に答える
-1

次のコードを使用できます。私はそれがあなたの問題に役立つと思います。

<script lang='javascript'>

 var b = 2;
var a = 1;
var str = " && b == 2"
if ("a == 1"  + str ) { 
alert("ok");  //do something
}

于 2013-01-27T16:02:51.007 に答える