使用字符串作为for循环表达式和条件

Mor*_*ori 3 javascript google-gadget

以下循环有效:

<html>
<body>
<script type="text/javascript">
var i=0;
for (i=0;i<=5;i++)
{
document.write("The number is " + i);
document.write("<br />");
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但以下不是:

<html>
<body>
<script type="text/javascript">
var i=0;
var x="i=0;i<=5;i++"
for (x)
{
document.write("The number is " + i);
document.write("<br />");
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我只想创建一个简单的变量.请耐心等待我,因为我是JavaScript的新手,让我知道我错过了什么.

让我提供我的示例Google小工具:

<?xml version="1.0" encoding="UTF-8" ?> 
<Module> 
<ModulePrefs title="Sample Gadget" /> 
<UserPref name="order" 
          display_name="Results Order" 
          default_value="i = 0; i <= 5; i++" datatype="enum"> 
<EnumValue value="i = 0; i <= 5; i++" display_value="Ascending"/> 
<EnumValue value="i = 5; i >= 0; i--" display_value="Descending"/> 
</UserPref> 
<Content type="html"><![CDATA[ 
<script type="text/javascript"> 
var i=0; 
for (__UP_order__) 
{ 
document.write("The number is " + i); 
document.write("<br />"); 
} 

</script> 
]]></Content> 
</Module>
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为标签<>(它们不受支持),这就是我尝试为EnumValue值定义变量的原因.

El *_*oco 5

当您说var x="i=0;i<=5;i++"您正在创建文本字符串时.这不是您所期望的JavaScript解释.

语句和文本字符串之间存在明显差异.即使它看起来像是同一个东西,它看起来像一个文本字符串,如"hello""sdflkjsdflkjsdflj".JavaScript不期望文本字符串作为循环参数,它期望三个循环控制参数/语句.如果你想要一个在不同点开始和结束的循环,做这样的事情......

var i=0;
var start=0; //you can change the start position by changing this
var end=5;   //and you can change the end also

for (i=start;i<=end;i++)
{
document.write("The number is " + i);
document.write("<br />");
}
Run Code Online (Sandbox Code Playgroud)