Hello! 欢迎来到小浪资源网!

理解 !! JavaScript – 简单指南


理解 !! JavaScript – 简单指南

见过!! 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!" 

你什么时候应该使用!!?

!!在以下情况下特别有用:

  1. 您需要一个真正的布尔值,而不是“真”或“假”值
  2. 您正在检查某个值是否存在并且有意义
  3. 你想让代码的意图非常清晰

哪些价值观会变成错误的?

这些都是使用 !! 时变为 false 的值:

  • 0
  • “”(空字符串
  • 未定义
  • nan

其他一切都成真!

专业提示

1. if 语句快捷方式

在 if 语句中,javascript 会自动将值转换为布尔值,因此:

if (!!username) {     // do something } 

等同于:

if (username) {     // do something } 

2. 使用 Boolean() 代替

一些开发人员更喜欢使用 boolean(),因为它更明显发生的事情:

Boolean("hello")   // true Boolean("")        // false !!("hello")        // true !!("")            // false 

两者的工作方式完全相同 – 使用对您更有意义的那个!

快速回顾

  • !!将值转换为 true/false
  • 这对于检查值是否存在非常有用
  • 当你特别需要布尔结果时使用它
  • 在 if 语句中,通常不需要它

记住:最好的代码是您的团队可以轻松理解的代码。不管你用不!!或 boolean(),只要保持一致即可!

相关阅读