我习惯用“==”来判断变量的值是否相等。 这次javascript 判断字符串相等,要判断两个字符串变量的内容是否相同javascript 判断字符串相等,我毫不犹豫地想到了“==”。
调试内容如下。 我们的用户注册页面有两个框,用于输入密码(设置为变量 a)和密码确认(设置为变量 b)。 那么后台接收到用户信息后,我们需要验证两个密码是否相同。 ,只有相同的才能通过。 结果当我填写正确的时候我们的程序却进入了错误页面。 经过调试,发现后台接收到的a和b中的字符串内容是完全一致的,但是在if语句中if (a==b)判断三者时,结果却是false。 我仔细对比了两个变量a和b的具体内容,发现除了用来标记变量的ID号之外,其余内容都不一样。 都是一样的,我很疑惑,就问TL才知道原因。 实际上,用“==”判断字符串变量是否相等时,是通过判断两个变量的标签(即ID号)来判断的。 也就是说,如果a和b同时指向显存中的同一个位置,一个对象,那么它们的ID号是相同的,内容实际上是相同的。 这里我们需要判断的是两个不同对象中的字符串内容是否相等。 显然,它们是不同的对象,那么,用“==”来判断,结果肯定会是false。
这种情况下,上述情况就不能使用“==”了,应该另想办法了。 有一个技巧,就是调用String类自带的equals方法。 该方法是通过比较变量中的字符串内容来比较字符串是否相等,正好满足要求。 因此,在这种情况下,应该使用equals方法。 事实上,大多数情况下,我们要比较的将是不同字符串对象的内容。 因此,是否比较字符串