见过!! javascript 代码中并想知道发生了什么?让我们简单地分解一下。
有什么作用!!做?
双感叹号 (!!) 是将任何值转换为布尔值(true 或 false)的快速方法。就这么简单!
把它想象成问 javascript:“嘿,这个值是否存在并且有意义吗?”
如果是的话,你就明白了如果不是,你就错了
查看实际效果
让我们看一些简单的例子:
// these become true!!42 // true (any number except 0)!!"hello" // true (any non-empty string)!!{} // true (any object)!![] // true (any array)// these become false!!0 // false!!"" // false (empty string)!!null // false!!undefined // false
登录后复制
现实世界的例子
1. 检查用户是否提供了姓名
function validatename(name) { if (!name) { // same as if (!!name === false) return "please enter your name"; } return `thanks, ${name}!`;}validatename("") // "please enter your name"validatename("sarah") // "thanks, sarah!"
登录后复制
2. 检查api响应是否有数据
function handleresponse(data) { const hasdata = !!data?.items?.length; if (hasdata) { return "found some results!"; } return "no results found";}handleresponse({items: []}) // "no results found"handleresponse({items: [1,2,3]}) // "found some results!"
登录后复制
你什么时候应该使用!!?
!!在以下情况下特别有用:
立即学习“Java免费学习笔记(深入)”;
您需要一个真正的布尔值,而不是“真”或“假”值您正在检查某个值是否存在并且有意义你想让代码的意图非常清晰
哪些价值观会变成错误的?
这些都是使用 !! 时变为 false 的值:
0″”(空字符串)空未定义nan假
其他一切都成真!
专业提示
1. if 语句快捷方式
在 if 语句中,javascript 会自动将值转换为布尔值,因此:
if (!!username) { // do something}
登录后复制
等同于:
if (username) { // do something}
登录后复制
2. 使用 boolean() 代替
一些开发人员更喜欢使用 boolean(),因为它更明显发生的事情:
Boolean("hello") // trueBoolean("") // false!!("hello") // true!!("") // false
登录后复制
两者的工作方式完全相同 – 使用对您更有意义的那个!
快速回顾
!!将值转换为 true/false这对于检查值是否存在非常有用当你特别需要布尔结果时使用它在 if 语句中,通常不需要它
记住:最好的代码是您的团队可以轻松理解的代码。不管你用不!!或 boolean(),只要保持一致即可!
以上就是理解 !! JavaScript – 简单指南的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2651390.html