在js中怎么判断两个字符串相等

var radioes5 = document.all("radioId");
for(var i=0;i<radioes5.length;i++)
{
if(radioes5[i].checked){
if(arr[5]==radioes5[i].nextSibling.nodeValue){
arrItem[5] = "我"; -----1
}else{
arrItem1[5] = "我"; ------2
}
}else{
arrItem[5] = "我";
}
}

arr[5] ===我;
radioes5[i].nextSibling.nodeValue===我
但是不知道为什么不执行1,语句
执行的是2;为什么?

在javascript判断两个变量值是否相等,可以使用 ==(等同)操作符 或者 ===(恒等)操作符

== 操作符
“等同”操作符,简单判断2个变量值是否相等,变量类型不一致时,会做类型转换,即忽略变量的类型进行比较
例子1
var str1 = "123456" ; // 字符串
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
例子2
var str1 = 123456 ; // 整型
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
差别:
在例子1中,2个变量都是字符串类型(因为有引号),所以比较相等,打印出true;
在例子2中,变量str1是整型,但是在做==比较时,javascript 发现 2个变量类型不一致,先做了类型转换(调用str1的toString方法,把str1转成字段串),再比较2者,因此值也相等,打印出true;

2. === 操作符
“恒等”操作符,先比较2个变量类型是否一致,不一致返回false,一致时,再比较2个变量的值是否相等
例子1
var str1 = "123456" ; // 字符串
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
例子2

var str1 = 123456 ; // 整型
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 false,即不相等
差别:
在例子1中,2个变量都是字符串类型,且值都相等,因此打印出true;
在例子2中,变量1是整型,变量2是字符串,类型不相等,因此打印出false ;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-21
在javascript判断两个变量值是否相等,可以使用 ==(等同)操作符 或者 ===(恒等)操作符

== 操作符
“等同”操作符,简单判断2个变量值是否相等,变量类型不一致时,会做类型转换,即忽略变量的类型进行比较
例子1
var str1 = "123456" ; // 字符串
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
例子2
var str1 = 123456 ; // 整型
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
差别:
在例子1中,2个变量都是字符串类型(因为有引号),所以比较相等,打印出true;
在例子2中,变量str1是整型,但是在做==比较时,javascript 发现 2个变量类型不一致,先做了类型转换(调用str1的toString方法,把str1转成字段串),再比较2者,因此值也相等,打印出true;

2. === 操作符
“恒等”操作符,先比较2个变量类型是否一致,不一致返回false,一致时,再比较2个变量的值是否相等
例子1
var str1 = "123456" ; // 字符串
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
例子2

var str1 = 123456 ; // 整型
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 false,即不相等
差别:
在例子1中,2个变量都是字符串类型,且值都相等,因此打印出true;
在例子2中,变量1是整型,变量2是字符串,类型不相等,因此打印出false ;
第2个回答  2018-03-03
在javascript判断两个变量值是否相等,可以使用 ==(等同)操作符 或者 ===(恒等)操作符

== 操作符
“等同”操作符,简单判断2个变量值是否相等,变量类型不一致时,会做类型转换,即忽略变量的类型进行比较
例子1
var str1 = "123456" ; // 字符串
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
例子2
var str1 = 123456 ; // 整型
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
差别:
在例子1中,2个变量都是字符串类型(因为有引号),所以比较相等,打印出true;
在例子2中,变量str1是整型,但是在做==比较时,javascript 发现 2个变量类型不一致,先做了类型转换(调用str1的toString方法,把str1转成字段串),再比较2者,因此值也相等,打印出true;

2. === 操作符
“恒等”操作符,先比较2个变量类型是否一致,不一致返回false,一致时,再比较2个变量的值是否相等
例子1
var str1 = "123456" ; // 字符串
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
例子2

var str1 = 123456 ; // 整型
var str2 = "123456" ; // 字符串
alert(str1==str2) ; // 打印出 false,即不相等
差别:
在例子1中,2个变量都是字符串类型,且值都相等,因此打印出true;
在例子2中,变量1是整型,变量2是字符串,类型不相等,因此打印出false ;
第3个回答  推荐于2017-10-10
js判断两字符串相等的确用双等号“==”。
至于你程序的问题建议你在前台debug调试一下,也可以通过alert()打印出来。同时注意浏览器的不同,比如nextSibling在ie和firefox里面可能不同追问

已解决,是因为页面显示的时候每个点选按钮后都多了一个空格。在alert的时候刚开始没有发现两个字符串的不同。

本回答被提问者采纳
第4个回答  2015-05-19
我用javascript 写了个例子,你参考一下: <script language="javascript"> function check() { var strInput=document.all.form1.text1.value; var keyword = "apple"; var n = strInput.indexOf(keyword); if(n!=-1) { var str_array =strInput.split(keyword); var strStar =""; for(var i=0;i<keyword.length;i++) { strStar+="*"; } strOutPut =str_array[0]+strStar+str_array[1]; }else { strOutPut = strInput; } document.all.maintbl.rows(0).cells(0).innerText = strOutPut; } </script> <form name =form1 > <input type=text size=30 name =text1 /> <input type =button onClick="check()" value ="显示"> </form> <table id =maintbl> <tr><td ></td></tr> </table> 补充: - - 这个。。。。我再想想 补充: 你是要判断字符串的个数相等 还是 内容 符号 或者字母? 追问: 是字符串的值, 回答: 返回值 无非是0和1 0为是 1为不是 你要取值来判断是进货还是反厂 那么首先你定义的时候就要把 进货和反厂的定义表明了 然后根据定义指数来判断 进货 和 反厂 是否=0或<0 补充: 能给我看一下 报错的内容么? 我们商讨一下 建议发个图之类的 补充: 那你的意思是 你点了一行进货和一行反厂 却弹出来一个 反厂的提示 是这样么? 追问: 呵呵,那个是我调试的时候弄到的。我看看啊。。我在调试下,我在网上看了也有好多人遇到这样的问题,我看了他们的解决方案。看看能不能结局 回答: 恩 好的``可能是我理解问题的能力差了点 抱歉 补充: 用字符来定义 就容易出错 我建议你把字符改为 函数或字母定义 前台还是 进货和反厂 后台的 值改为用数字或字母来定义 这样判断的时候可能就不会出现错误了
相似回答