【JavaScript 教程】第三章运算符01— JavaScript 一元运算符
在上节中,我们学习了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); // 9i = 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 一元运算符来操作值,希望对您有帮助。