js number相等却返回false

问题描述

js number相等却返回false

在js中,我写了个这样子的很简单的function:

 function isEqual(a, b) {
            if(a.index==b.index){
                console.log("in equal:"+a.index +"," + b.index+";");
                console.log("type:"+typeof(a.index)+"," +typeof(b.index)+";");
                console.log("in equal:"+a.index==b.index);
            }
            return a.index == b.index;
        }

中间的输出是我发现不对自己加的,控制台输出这样:

我就很纳闷呀,if的条件都进入了,类型和数值都一样了,但是为什么返回的就是false?

解决方案

 是你没加括号吧
 console.log("in equal:"+a.index==b.index);
 改成
 console.log("in equal:"+(a.index==b.index));
 不加括号先算前面字符串连接,连接后成in equal:30,在于b.index比较值是否一样
时间: 2024-10-03 12:52:26

js number相等却返回false的相关文章

SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法

1.SpringMVC中通过@ResponseBody返回对象,作为JQuery中的ajax返回值 package com.kuman.cartoon.controller;   import java.util.Map;   import javax.servlet.http.HttpServletRequest;   import org.apache.commons.io.filefilter.FalseFileFilter; import org.slf4j.Logger; import

求单选按纽的值,适用单选项及多选项。未选返回false;有选择项,返回选项值。

<form name="frm"><input type="radio" value="1" name="radioName"><input type="radio" value="2" name="radioName"><input type="button" onClick="alert(Ch

如何解决php unserialize返回false的问题

php unserialize 返回false的解决方法 php 提供serialize(序列化) 与unserialize(反序列化)方法. 使用serialize序列化后,再使用unserialize反序列化就可以获取原来的数据. <?php $arr = array( 'name' => 'fdipzone', 'gender' => 'male' ); $str = serialize($arr); //序列化 echo 'serialize str:'.$str."\

php中unserialize返回false的解决方法

 php 提供serialize(序列化) 与unserialize(反序列化)方法. 使用serialize序列化后,再使用unserialize反序列化就可以获取原来的数据. 先来看看如下程序实例: 1 2 3 4 5 6 7 8 9 10 11 12 13 <?php  $arr = array(    'name' => 'fdipzone',    'gender' => 'male'  );      $str = serialize($arr); //序列化  echo '

js获取通过ajax返回的map型的JSONArray的方法

 下面是js获取通过ajax返回的map型的JSONArray的详细代码,需要的朋友可以参考下 代码如下: for(var i in datares){  if (datares.hasOwnProperty(i)) {  sel.append("<option value='"+datares[i].deptid+"'>"+datares[i].deptname+"</option>");  }  }   

怎么用linq按照id分组查到name有相同时,c#语法返回false

问题描述 怎么用linq按照id分组查到name有相同时,c#语法返回false 只写出这样了 var sameSJ = from r in iw group r by new { Id= r.Field("ads_id") } into g select new { g.Key.Id, Count = g.Count() }; 解决方案 var sameSJ = from r in iw group r by r.Field("ads_id") into g se

easyui form validate总是返回false的原因及解决方法_javascript技巧

最近做表单验证用了easyui form组件.又一次发现在测试表单都填写正确了但是调试表单的代码监测到调用form的"validate"方法总是返回false 最后查了一下原因在html中写的是easyui-validatebox但是在script中却又声明了$('#field1').combobox(); <form id="form1"> <input type="text" id="field1" cl

listview-当ArrayAdapter.isEnabled返回false时, ListView中的divider消失

问题描述 当ArrayAdapter.isEnabled返回false时, ListView中的divider消失 在程序的ArrayAdapter类里面我使用ListActivity.当我重写了ArrayAdapter.areAllItemsEnabled() 和 ArrayAdapter.isEnabled()方法,在 list view 中单元格之间的 divider 就会消失.我想要dividers在单元格里都能显示. 大家知道怎么避免这个问题的出现呢? 解决方案 对某些特殊的项目,在a

ios-代码中的方法一直返回FALSE

问题描述 代码中的方法一直返回FALSE - (BOOL)checkForDigits { NSString *editableExpression = self.expression.text; for (int i = 0; i < editableExpression.length; i++){ char charAtPosition = [editableExpression characterAtIndex:i]; for (int c = 0; c < 10; c++ ){ cha