首页新闻找找看学习计划

MVC中输出显示完全相等,但是比较时确返回false

0
悬赏园豆:5 [已解决问题] 解决于 2015-01-14 13:30

代码如下:

注:email为nnnn@163.com

  function gotoEmail(email) {

var aa = email.split('@@')[1];

alert(aa);//aa输出的是163.com

alert("cnm:" + aa.toString() == "163.com");//此处确输出的false

}

 

这是为什么呢?

瑶瑶EXO的主页 瑶瑶EXO | 初学一级 | 园豆:100
提问于:2015-01-13 10:28
< >
分享
最佳答案
0
alert("cnm:" + aa.toString() == "163.com")
//alert("cnm:163.com"  == "163.com")
//字符串"cnm:163.com"等等"163.com"吗?  肯定为false咯
收获园豆:5
骑着蜗牛耍流氓 | 初学一级 |园豆:178 | 2015-01-13 10:30

var aa = email.split('@@')[1];

此处我已经进行了分割。所以aa输出的是163.com

然后我用的aa去跟"163.com"作比较

瑶瑶EXO | 园豆:100 (初学一级) | 2015-01-13 10:32

var aa = email.split('@@')[1];

此处我已经进行了分割。所以aa输出的是163.com

然后我用的aa去跟"163.com"作比较

 

瑶瑶EXO | 园豆:100 (初学一级) | 2015-01-13 10:32

@瑶瑶EXO: 

看这一句:alert("cnm:" + aa.toString() == "163.com");

骑着蜗牛耍流氓 | 园豆:178 (初学一级) | 2015-01-13 10:37

@骑着蜗牛耍流氓: 亲,是的呀。我的aa已经是等于163.com了,我所有问的就是:为什么aa已经等于163.com了,确aa.toString() == "163.com"为false呢。你可以无视那个"cnm:"那个字符串

瑶瑶EXO | 园豆:100 (初学一级) | 2015-01-13 10:39

@瑶瑶EXO: 谁告诉你可以无视那个cnm字符串了?

吴瑞祥 | 园豆:28729 (高人七级) | 2015-01-13 10:41

@瑶瑶EXO: 这个不能无视,你把“cnm:”去掉就为true了好么

骑着蜗牛耍流氓 | 园豆:178 (初学一级) | 2015-01-13 10:42

@骑着蜗牛耍流氓: NO。  不行,我之所以让你无视它,是因为没有它也为false

瑶瑶EXO | 园豆:100 (初学一级) | 2015-01-13 10:45

@瑶瑶EXO: 怎么可能?,除非你的aa不是163.com   如果是的话一定为true的

骑着蜗牛耍流氓 | 园豆:178 (初学一级) | 2015-01-13 10:47

@瑶瑶EXO: 

var aa="163.com";
alert(aa.toString()=="163.com")

骑着蜗牛耍流氓 | 园豆:178 (初学一级) | 2015-01-13 10:49

@骑着蜗牛耍流氓: 对呀,我也说怎么可能呀,可是我都alert(aa)弹出的是163.com了。可是就是为false.我也特意检查了是不是多加了一个空格的原因,但是不是。 后面我又想是不是MVC中有什么特殊的地方(因为我刚接触MVC)。  

瑶瑶EXO | 园豆:100 (初学一级) | 2015-01-13 10:49

@瑶瑶EXO: 

加个debugger调试看看值

骑着蜗牛耍流氓 | 园豆:178 (初学一级) | 2015-01-13 10:51

@瑶瑶EXO: 嘿。我发现了耶,好像是因为email.split('@@')[1];这句的问题,像你刚才那样,我也可以照样输出,但是var aa=email.split('@@')[1];  确实是弹出的163.com呀。我就不明白了

瑶瑶EXO | 园豆:100 (初学一级) | 2015-01-13 10:52

@骑着蜗牛耍流氓: 如何弄?

瑶瑶EXO | 园豆:100 (初学一级) | 2015-01-13 10:52

@瑶瑶EXO: debugger   //相当于一个VS的断点,加到你想要调试的代码上一行。  浏览器开发者工具(F12)打开,刷新一下操作对应的函数就会进去断点了

骑着蜗牛耍流氓 | 园豆:178 (初学一级) | 2015-01-13 10:57
其他回答(3)
0

代码执行优先级,最后一个比较,会先执行+号,然后再执行==,所以,嘿嘿~   BTW:I hate EXO.

幻天芒 | 园豆:36522 (高人七级) | 2015-01-13 10:38

首先我也这么想的,这是我先前的代码复制过来的,但是在没有前面字符串的时候。它为什么依旧为false呢

支持(0) 反对(0) 瑶瑶EXO | 园豆:100 (初学一级) | 2015-01-13 10:46

@瑶瑶EXO: 你还是把代码贴完吧,很有可能是空格什么的不可见字符。

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2015-01-13 10:57

@幻天芒: 我想请问一下是不是ViewDate[""]中获得的值有固定的长度?  这是email:18073314832@163.com  可是我获得的长度是40.  我估计就是这个原因,肯定是我获得的163.com后面还有长度

支持(0) 反对(0) 瑶瑶EXO | 园豆:100 (初学一级) | 2015-01-13 11:29

幻天芒大哥,看了我提的TFS的问题了吗?求指导啊。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-01-13 11:34

@瑶瑶EXO: 本身并没有固定长度的说法,可能需要你看后台的代码了。

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2015-01-13 11:43

@晓菜鸟: 没用过TFS,无能为力啊,我用svn和git。

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2015-01-13 11:45

@幻天芒: 嗯,我们以前也是用的SVN,现在准备用用TFS,谢谢了!

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-01-13 13:15
0

最后的比较会先执行“+”拼接字符串,然后才执行“==”进行比较,用括号把里面括起来就行了。

alert("cnm:" + (aaa.toString() == "163.com"));//此处确输出的true.

晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-01-13 11:21
0

逻辑哦  aa 的 值 是 163.com

你的判断是 "cnm:" + aa.toString() == "163.com"

换言之 你要求 cnm:163.com=163.com

你肿么看

流星霜紫 | 园豆:473 (菜鸟二级) | 2015-01-13 15:09

楼上也说了 你敢不敢  (aaa.toString() == "163.com")  程序不要想当然

运算符的优先级 一定要 知晓  基础是很重要的

支持(0) 反对(0) 流星霜紫 | 园豆:473 (菜鸟二级) | 2015-01-13 15:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册