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

JavaScript教程1年前 (2023)更新 admin
1,727 0

在上节中,我们学习了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 一元运算符来操作值,希望对您有帮助。

© 版权声明

相关文章

暂无评论

暂无评论...