在 Javascript 中,== 和 === 都是用于比较两个值是否相等的操作符,它们之间的区别在于比较的方式和类型较检。== 是强制类型转换比较,=== 是不强制类型转换比较,在Javascript应用中,为了避免类型转换带来的风险,通常优先使用 === 操作符,这也是标准的应用写法。以下通过一个验证码的 Demo去解释说明两者的区别。
首先测试 ==的较检
对输入的12345 和 预设的 123456去较检,结果为失败。
输入123456 和 预设的 123456再去较检,结果为验证通过。
可见,当使用 == 比较符时,结果会把 input 输出的 String(字符串类型) 自动强制转换成 Number(数字类型)去较检数据。
转使用 === 去测试较检,同样输入 123456 去比较,结果验证失败。
扫描二维码关注公众号,回复:
15697924 查看本文章
可以对输出的 String 类型,转换成 Number 类型,再进行数据较检,方法有多种,主要使用 parseInt() 和 Number() 方法这两种。
parseInt()方法: parse()方法在前几期也详解了它对 Json序列化和反序列化的应用。
Numbrt() 方法: 同样也可以成功把 String 转换成 Number类型。
测试代码:
<script>
var system_code = 123456;
// var verify_code = parseInt(prompt('请输入验证码'));
var verify_code = Number(prompt('请输入验证码'));
console.log('system_code的类型为:' , typeof system_code);
console.log('verify_code的类型为:', typeof verify_code);
function check_code(){
if (verify_code === system_code){
console.log('验证成功');
}else{
console.log('验证失败,请重新输入');
};
var isConfirm = confirm('请确认');
};
check_code();
</script>
测试视频:
Javascript 比较运算符 == 和 === 的应用区