被遗忘了吗? JavaScript:有用的部分
在许多语言中,void
是没有值的类型。 在JavaScript中,void
是一个运算符,它采用一个操作数并返回undefined
。 这是没有用的,并且非常令人困惑。 避免void
。 〜道格拉斯·克罗克福德。 JavaScript:好的部分
如果您同意这一说法,我不想浪费您的时间,从这里跳出来,继续拯救世界。 ????如果没有,让我们发现为什么void是有用的,并且您不应该避免它。
为什么虚无混淆?
void 0 === undefined //true
true????
为什么? 怎么样? 什么是空的? 这甚至是JavaScript吗?
当我问开发人员关于无效性和主要困惑时,我得到的答案是,开发人员忘记了或不知道或发现陌生的东西。
void
运算符计算给定的expression
,然后返回undefined
。 这就是您需要知道的有关void
运算符的全部信息。
无效如何有用?
1.评估表达式并从函数中跳出
有一次我完成了代码审查,发现了这样的方法:
function doStuff(a) {
if (a) {
doSomething()
} else {
doSomethingElse()
return
}
doSomethingMore()
}
因此,从该方法中,您可能会看到在doSomethingElse()
情况下,我们返回undefined
并从函数中跳出。 让我们保存一行,并使其与更具可读性void
。
function doStuff(a) {
if (a) {
doSomething()
} else {
return void doSomethingElse()
}
doSomethingMore()
}
从无效描述中,您知道它计算doSomethingElse()
并返回undefined
。 那正是我们所需要的????
2.检查未定义
旧的浏览器允许将undefined
重新分配为undefined = 'test'
。 但是,此问题已在2009年使用ECMAScript 5修复。
如果您需要支持旧的浏览器,例如IE8,这是一个辅助功能????
function isUndefined(value) {
return value === void 0
}
3.链接的preventDefault()行为
我们都知道,没有href
属性a
标记无效,但是在HTML5中href
属性不是必需的,因此可以省略。
以某种方式,如果您需要防止href
起作用,请使用void
。
<a href="javascript: void(0)">About</a>
4.立即调用函数表达式
当使用立即调用的函数表达式时 ,可以使用void
强制将function
关键字视为表达式而不是声明。
void function IIFE() {
// do something ...
}()
结论
void
是一个简单的运算符,我发现它很有用。 我猜想,更多的开发人员不会使用它,因为他们在学习时没有碰过它。 当然,如果团队发现讨论起来比较混乱,那就更好了。 在帮助中,ESLint具有规则( no-void )。 编码愉快! ????
???? 感谢您的阅读。 提出建议,评论,想法:)
如果您喜欢,拍手,在 medium , twitter , github 上关注我 , 与您的朋友分享 ✌️
From: https://hackernoon.com/is-void-forgotten-javascript-the-useful-parts-2de88901a1e0