【JavaScript 教程】第三章运算符01— JavaScript 一元运算符

06446e2a9620eaadca002220f08f811b.png

英文 | https://www.javascripttutorial.net/

译文 | 杨小爱

在上节中,我们学习了JavaScript 布尔值,错过的小伙伴可以点击文章《【JavaScript 教程】第二章基础知识05—JavaScript 布尔值

那么,在今天的教程中,我们将一起来学习如何使用 JavaScript 一元运算符,这些运算符采用单个操作数并执行操作。

现在,我们开始今天的内容。

JavaScript 一元运算符简介

JavaScript 中最简单的运算符是一元运算符。一元运算符作用于一个操作数。JavaScript 中的一元运算符是:

  • 一元加号 (+) – 将操作数转换为数字

  • 一元减号 (-) – 将操作数转换为数字,然后取反。

  • 前缀/后缀增量 (++) – 在其操作数上加一

  • 前缀/后缀递减 (--) – 从其操作数中减一。

一元加/减

一元加号运算符是一个简单的加号 + ,一元减号是减号 - 。您可以将一元加号或减号放在变量前面,如下所示:

 
 
let a = 10;
a = +a; // 10
a = -a; // -10

如果值为数字,则一元加号运算符不起作用,而一元减号则取反该值。

如果您对非数字值应用一元加号或减号,它会执行与 Number() 函数相同的转换。

 
 
let s = '10';
console.log(+s); // 10

在这个例子中,s 是一个字符串。但是,当我们将一元加号运算符放在它前面时,字符串 s 将转换为数字。

以下示例显示一元运算符如何将布尔值转换为数字,将 false 转换为 0,将 true 转换为 1。

 
 
let f = false,
    t = true;
console.log(+f); // 0
console.log(+t); // 1

假设您有一个带有 valueOf() 方法的产品对象,如下所示:

 
 
let product = {
    valueOf: function () {
        return 60;
    }
};

当您对具有 valueOf() 方法的对象应用一元加号或减号时,将调用该方法以返回转换后的值。

如果返回值为 NaN,则调用 toString() 方法以获取转换后的值。下面是一个例子:

 
 
console.log(+product); // 60

递增/递减运算符

JavaScript 借鉴了 C 语言的自增和自减运算符。自增和自减运算符都有两个版本:前缀和后缀。

将递增或递减运算符的前缀版本放在变量之前,将后缀版本放在变量之后。

以下示例显示如何使用前缀增量运算符将 1 添加到变量。

 
 
let dan = 8;
++dan;
console.log(dan); // 9

在此示例中,前缀增量运算符将 dan 的值加 1。结果dan的值为9,效果如下:

 
 
let dan = 8;
dan = dan + 1;
console.log(dan); // 9

前缀递减运算符从数值中减去 1:

 
 
let dan = 9;
--dan;
console.log(dan); // 8

在此示例中,前缀递减从 9 中减去 1。

重要的是要注意前缀递减,变量的值在语句被评估之前发生了变化。请参阅以下示例:

 
 
let x = 10, 
    y = 20;
let z = --x + y;
console.log(z); // 29

在这个例子中,z 变量被初始化为 x 加 y 的递减值。

因为先计算前缀递减运算符,所以 x 的值设置为 9,然后加上 20,结果为 29。

增量和减量的后缀版本具有相同的形式:++ 和 -- 但放在变量之后。

后缀和前缀之间的唯一区别是 JavaScript 在包含语句被评估之前不会评估它们。下面是一个例子:

 
 
let i = 10;
i--;

第二条语句后,i的值为9,效果与:

 
 
let i = 10;
--i;

因为只应用了一项操作。

当您将 postfix 版本与其他操作混合使用时,差异会变得更加明显:

 
 
let i = 10, j = 20;
let m = i-- + j;
console.log(m); // 30
console.log(i); // 9


i = 10;
let n = --i + j;
console.log(n); // 29
console.log(i); // 9

在此示例中,m 使用 i 的原始值,即 10,而 n 使用 i 的递减值,即 9。

与一元加减类似,您可以对字符串、布尔值和对象的值使用递增或递减运算符,将这些值转换为具有类似规则的数字:

当用于可以转换为有效数字的字符串时,它将字符串转换为数字。如果字符串无法转换为数字,则返回 NaN。

在布尔值上使用时,变量被转换为数字,true 变为 1,false 变为 0。

在对象上使用时,首先调用 valueOf()。如果结果为 NaN,则调用 toString() 以返回转换后的值。

到这里,在本教程就结束了,在这里,您学习了如何使用 JavaScript 一元运算符来操作值,希望对您有帮助。

学习更多技能

请点击下方公众号

64a1df175efa5ea068dfdaf504b50387.gif

a762c4574eaa1534bde3724dbcedd5ac.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值