... && => && !== && !! && === 5种特殊js 用法总结

1 篇文章 0 订阅

首先是es6的 ... 三点运算符的用法 第一个叫做 展开运算符(spread operator),作用是和字面意思一样,就是把东西展开。第二种array.push(...items)和add(...numbers),都是函数的调用,它们的都使用了扩展运算符。该运算符将一个数组,变为参数序列。

接下来:==>ES6标准新增了一种新的函数:Arrow Function(箭头函数)。为什么叫Arrow Function?因为它的定义用的就是一个箭头:

x => x * x

上面的箭头函数相当于:

function (x) {
    return x * x;
}
其他的类型则可以参照这个作者https://www.cnblogs.com/hailun/p/6279029.html

再接下来 :   !==表示要全部不相等包括类型或者的意思

再者:!! 一般用来将后面的表达式转换为布尔型的数据(boolean)例如 !!api.getStorageSync('isDev')判断括号里面的值

最后是 :===表示类型什么的全部相等

知识拓展:js 中=== !== || !! 是什么意思?_百度知道

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以尝试优化 initOpr() 函数的代码,使其更加简洁和易于维护。以下是可能的优化方式: 1. 将权限字符串存储在数组中,使用循环来检查每个权限是否存在,并将结果存储在布尔值数组中。 2. 将每个操作的名称和相应的条件存储在对象中,使用循环来检查每个条件是否满足,并将结果存储在一个操作数组中。 3. 将操作数组存储在一个对象中,其中键是表格数据中每个行的索引,值是该行的操作数组。 4. 在循环结束后,使用一个函数来更新表格数据中的每一行的操作列。 下面是一个可能的优化方案: ``` initOpr() { const permissions = [ 'yz/business/cele:view', 'yz/business/cele:edit', 'yz/business/cele:forbid', 'yz/business/cele:check', 'yz/business/cele:fiction', 'yz/business/cele:recommand', 'yz/business/cele:reset', 'yz/business/cele:ratio' ]; const hasPermission = permission => this.hasPermission(permission); const permissionFlags = permissions.map(hasPermission); const operations = { view: { name: '查看', condition: permissionFlags[0] }, edit: { name: '编辑', condition: (val, index) => val.state !== 3 && val.state !== 4 && permissionFlags[1] }, forbid: { name: '封禁', condition: (val, index) => val.state === 1 && permissionFlags[2] }, enable: { name: '启用', condition: (val, index) => val.state === 0 && permissionFlags[2] }, check: { name: '前置审核', condition: (val, index) => val.checkOnOff !== 1 && permissionFlags[3] }, postCheck: { name: '后置审核', condition: (val, index) => val.checkOnOff === 1 && permissionFlags[3] }, fiction: { name: '虚拟粉丝量', condition: permissionFlags[4] }, closeRecommend: { name: '关闭推荐值自动增减', condition: (val, index) => val.isAutoRecommend === 1 && permissionFlags[5] }, openRecommend: { name: '开启推荐值自动增减', condition: (val, index) => val.isAutoRecommend !== 1 && permissionFlags[5] }, reset: { name: '重置账号', condition: (val, index) => (val.authType === 1 || val.authType === 5) && permissionFlags[6] }, ratio: { name: '设置分成', condition: permissionFlags[7] } }; const operationsByRow = this.tableData.map((val, index) => { const rowOperations = []; Object.values(operations).forEach(operation => { if (typeof operation.condition === 'function' && operation.condition(val, index)) { rowOperations.push(operation.name); } else if (operation.condition === true) { rowOperations.push(operation.name); } }); return rowOperations; }); this.oprList = operationsByRow; this.updateTable(); } updateTable() { this.tableData.forEach((val, index) => { const oprArr = this.oprList[index]; if (oprArr.length === 0) { this.columns.splice(this.columns.length - 1, 1); } val.opr = oprArr.join(' | '); }); } ``` 该优化方案使用了一些 JavaScript 中的常用函数,如 map()、forEach() 和 join(),并将检查操作条件的逻辑封装在一个对象中。这样,如果需要添加或修改某个操作,只需要修改 operations 对象即可。同时,该方案还将更新操作列的逻辑封装在了 updateTable() 函数中,使代码更加清晰易懂。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值