被遗忘了吗? JavaScript:有用的部分

被遗忘了吗? JavaScript:有用的部分
Johnson CamerafaceFlickr上的照片
在许多语言中, 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