javascript - switch...case...
问题描述
export const setID = (v) => { console.log(’执行setID’,v); let l = v.length; switch(l) { case l < 6 : console.log(’qq’); break; default: console.log(’11111’); }}
v是传入的字符串,这段代码第一个console正常执行,第二个console无论任何情况都不执行,现在可以肯定的是我的switch...case...出了问题,求教问题在哪里
问题解答
回答1:改成下面这个
const setID = (v) => { console.log(’执行setID’,v); let l = v.length; switch(l < 6) { case true : console.log(’qq’); break; default: console.log(’11111’); }}
不过你这个完全可以用一个if语句:
if (l < 6) { console.log('qq');} else { console.log('1111');}
按照原先的写法应该是l和l < 6是否相等,l是一个整数,表示字符串的长度,l<6是一个布尔值,整数和布尔值是不全等的,所以永远都会走default语句;原先写法的误区:不是case语句后面的为true就会执行,而是switch表达式里面的内容l和case语句后面的内容l<6全等时才匹配;假设v='111',此时l=3 l<6为true,但是3!==true,所以走的是default语句。
回答2:你的l确定是小于6的?
switch(n){case 1: 执行代码块 1 break;case 2: 执行代码块 2 break;default: n 与 case 1 和 case 2 不同时执行的代码}回答3:
export const setID = (v) => { console.log(’执行setID’,v); let l = v.length; switch(true) { case l < 6 : console.log(’qq’); break; default: console.log(’11111’); }}
相关文章:
1. android - 京东移动端网页和其app加载的url所做的呈现不应该是完全一样的吗?2. 站点内容复制额外增加的版权申明,真的很反人类。试问产品自己在用这个站点吗?3. mysql - 我的myeclipse一直连显示数据库连接失败,不知道为什么4. css3 - 这个效果用 CSS 可以实现吗?border-image5. python - 在sqlalchemy中获取刚插入的数据id?6. javamail发送邮件是否跟所在的网络环境有关?7. vue.js - vue 打包后 nginx 服务端API请求跨域问题无法解决。8. CSS3 flex 如何让高度不等的同排等高?9. css - 移动端 盒子内加overflow-y:scroll后 字体会变大10. javascript - 在vue-cli引入vux后 使用报错

网公网安备