productcenter
productcenter
  • 发布:2020-10-16 15:24
  • 更新:2020-10-16 15:35
  • 阅读:642

【报Bug】字符串‘0’和数字0 分别与‘’比较,结果一个为false,一个为true

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: 正式

HBuilderX版本号: 2.8.13

手机系统: Android

手机系统版本号: Android 8.0

手机厂商: 小米

手机机型: 红米8

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

this.receipt.isOwn==''

预期结果:

this.receipt.isOwn==''

实际结果:

this.receipt.isOwn==''

bug描述:

console.log("=====isOwn:"+this.receipt.isOwn);
console.log(this.receipt.isOwn==null);
console.log(this.receipt.isOwn=='');

15:15:04.749 =====isOwn:0 at pages/task/receiptInfo.vue:907
15:15:04.770 [Boolean] false at pages/task/receiptInfo.vue:908
15:15:04.790 [Boolean] true at pages/task/receiptInfo.vue:909

定义的时候isOwn的值用array:[{id:'1',name:'本区间'},{id:'0',name:'非本区间'}], 里面的id 这种方式比较全是false

array:[{id:1,name:'本区间'},{id:0,name:'非本区间'}],id用数字形式,做比较this.receipt.isOwn=='' 就为true

2020-10-16 15:24 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

js的基础知识:
'' == 0 // String和Number比较,先将String转换为Number类型。'' 会首先变成 0

https://chinese.freecodecamp.org/news/javascript-implicit-type-conversion/#2-5-

该问题目前已经被锁定, 无法添加新回复