今天做状态切换的时候, 获取商品列表, 后端那边说如果选择全部, status 这个字段就不传, 然后如果选择待付款的话, 状态就传 0, 我给做的是如果用户点击全部会给 status 传个 "" 空字符串, 判断 status 如果等于空字符串就不传这个字段.
- let params
- if(status == ''){
- params = {
- page: 1,
- size: 4
- }
- }else{
- params = {
- page: 1,
- size: 4,
- status: status
- }
- }
当我点击待付款的时候 status 等于 0, 结果发现返回的还是全部的数据, 我当时就纳闷了, status 的值没传错啊传的是 0, 怎么获取的数据还是全部呢, 0 怎么会和 "" 空字符串相等呢? 然后网上查了一波发现
==: 运算符称作相等, 用来检测两个操作数是否相等, 这里的相等定义的非常宽松, 可以允许进行类型转换
===: 用来检测两个操作数是否严格相等
然后我又在谷歌控制台测试了一下
所以说以后我们写代码最好还是使用严格模式来写, 避免很多弯路.
来源: http://www.bubuko.com/infodetail-3474836.html