其实大多数编程语言都足够开放,允许程序员用多种方式进行编程,从而获得相似的结果。JavaScript也是如此。在使用JavaScript的时候,通常我们也会找到许多方法来获得相似的结果,但有时会造成混淆状况的发生。
在这些方法中,其中一些用法比其他方法要好,因此这些是我的最爱,我也会在本文中把这些方法列出来。我相信,你在自己的列表中也会找到这些方法。
1.忘记字符串连接,使用模板字符串(文字)
一般情况下,我们在构建一个有意义的字符串时,通常会使用+运算符将字符串连接在一起。然而,连接字符串和动态值(或表达式)时,可能会导致一些错误情况的发生。
模板文字(或模板字符串)允许嵌入表达式。它具有独特的语法,也就是字符串必须用反引号(``)括起来。模板字符串可以包含动态值的占位符。这些可以通过美元符号和大括号(${expression})进行标记。
我们来用这种方法做一个演示:
2.想知道值是否为整数?这里有一种更清晰的方法.
JavaScript的NumberAPI提供了一种被称为isInteger()的方法,以此来了解值是否为整数。这是非常有用的,并且更加容易被注意到。
输出如下:
3.价值作为数字
以前你是否注意到,event.target.value即使输入数字类型,也总是返回字符串类型值?
是的,来看下面的示例。我们有一个简单的数字类型的文本框。这意味着它只接受数字的输入。它具有事件处理程序来处理按键事件。
在事件处理程序方法中,我们取出值时会用到event.target.value。但是它返回的是一个字符串类型值。现在我还要将它解析为一个整数,这有些麻烦。如果输入框接受浮点数(如16.56)怎么办?parseFloat()然后呢?还会有额外的工作和各种各样令人困惑的事情发生!
使用event.target.valueAsNumber代替。它会以数字形式返回值。
4.AND的简写
让我们考虑一个具有布尔值和函数的情况。
这里的代码太多了,无法检查布尔条件并调用该函数,
那么,尝试通过AND(&&)运算符使用简写怎么样?是的,避免了if的完全陈述。很酷吧!
5.带有OR的默认值
你可以通过OR(||)运算符,轻松实现为变量设置默认值的操作。
但是等等,这是有问题的。如果这个人的年龄是0怎么办(可能是刚出生的婴儿)。年龄将被计算为35(0|| 35 = 35),这属于意料之外的运算行为。
这个时候,可以输入nullishcoalescing operator(??)。它是一个逻辑运算符,当其左侧操作数为null或者undefined时,返回其右侧操作数,否则返回其左侧操作数。
要使用??运算符重写以上代码,