javascript 一个很不解的问题,请大家解答。

[size=small][code="javascript"]
var s1 = '\x61\x62\x63';
var s2 = document.getElementById('text1').value; // 文本框里的值是\x61\x62\x63 跟s1是一样的
// s1输出的是abc 让我想s2应该也是abc 但是他输出的是\x61\x62\x63 没有自动转,那为什么s1会自动转了呢?
alert(s1 == s2); // 结果是false

// 这个问题有什么好办法决绝没 我想让var s2 = document.getElementById('text1').value;的值也自动转成abc 怎么办? 谢谢大家了
[/code][/size]

[code="html"]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">


<br> function cccc()<br> {<br> var s1 = &#39;\x61\x62\x63&#39;;<br><br> alert(s1);<br> var s2 = document.getElementById(&#39;test&#39;).value;<br> s2=&quot;&#39;&quot;+s2+&quot;&#39;&quot;;<br> alert(eval(s2));<br> }<br>






[/code]

这个方法测试通过,不信你自己看看

s2不是abc,

而是\x61\x62\x63 事实上文本框中的内容已经被转义了
输入什么 内容就是什么

S1定义的时候是默认转换成char类型,而S2默认转换成String类型。
也就是说
[code="java"]char s1='\x61\x62\x63';
String s2="\x61\x62\x63"[/code]
输出结果当然就不一样了.
解决方法我还没有想到,不好意思。

[code="javascript"]
var s1 = '\x61\x62\x63';
var s2 = eval("'"+document.getElementById('text1').value+"'");
[/code]
这么做有点牵强感觉,但是能实现你想要的效果.