为什么我的变量不相等?

时间:2013-06-13 19:13:25

标签: javascript string equals scriptlet

所以我有2个变量。一个用javascript编写,另一个用jsp中的scriplet编写。它们都是字符串,当我打印它们时它们都具有值“4”。当我执行.getClass()时,它们都是字符串类,但是当我打印出来询问它们是否是.equals()或者即使我这样做(我知道它对于字符串不正确)==它打印出错误。< / p>

这些是我的变量及其声明方式。

String showingValue = "<script>document.writeln(selectedCopyValue)</script>";

String val4 = "4";

selectedCopyValue是一个用上面的javascript编写的变量。它被声明(现在因为它是硬编码的测试):

String selectedCopyValue = "4";

那么为什么当我做一些广泛的事情时:

out.print(val4.trim().toString().equals(showingValue.trim().toString()));

打印出来是假的吗?

1 个答案:

答案 0 :(得分:4)

当您打印showingValue时,浏览器会执行脚本并显示4.当您比较字符串时,它不会执行脚本,因此它会比较字符串:

"4"不等于"<script>document.writeln(selectedCopyValue)</script>"