见过!! 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
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!"
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!"
!!在以下情况下特别有用:
这些都是使用 !! 时变为 false 的值:
其他一切都成真!
在 if 语句中,JavaScript 会自动将值转换为布尔值,因此:
if (!!username) { // do something }
等同于:
if (username) { // do something }
一些开发人员更喜欢使用 Boolean(),因为它更明显发生的事情:
Boolean("hello") // true Boolean("") // false !!("hello") // true !!("") // false
两者的工作方式完全相同 - 使用对您来说更有意义的一个!
请记住:最好的代码是您的团队可以轻松理解的代码。不管你用不!!或 Boolean(),只要保持一致即可!
以上是理解 !! JavaScript - 简单指南的详细内容。更多信息请关注PHP中文网其他相关文章!