介绍
数学运算是任何编程语言最基础和最普遍的特征之一。 在JavaScript中,数字经常用于常见任务,例如查找浏览器窗口大小维度,获取货币交易的最终价格,以及计算网站文档中元素之间的距离。
虽然对数学的高级理解不是成为有能力的开发人员的先决条件,但重要的是要知道JavaScript中有哪些类型的操作可用,以及如何使用数学作为完成实际任务的工具。
与其他编程语言不同,JavaScript只有一个数字数据类型; 例如,整数(正整数或负整数)和浮点数(带小数点的数字)之间没有区别。
在本教程中,我们将讨论算术运算符,赋值运算符以及JavaScript编号数据类型所使用的操作顺序。
算术运算符
算术运算符是指示数学运算并返回值的符号。 在等式3 + 7 = 10
, +
是代表加法的语法。
JavaScript有许多熟悉的基础数学运算符,以及特定于编程的一些额外的运算符。
以下是JavaScript算术运算符的参考表。
操作者 | 句法 | 例 | 定义 |
---|---|---|---|
加成 | + |
x + y |
x 和y 和 |
减法 | - |
x - y |
x 和y 差异 |
乘法 | * |
x * y |
x 和y 乘积 |
师 | / |
x / y |
x 和y 乘积 |
模 | % |
x % y |
剩余x / y |
幂 | ** |
x ** y |
x 到y 权力 |
增量 | ++ |
x++ |
x 加一 |
递减 | -- |
x-- |
x 减一 |
我们将在本文中详细介绍这些操作符。
加减
加法和减法运算符可用于JavaScript,可用于查找数值的和值和差值。 JavaScript有一个内置的计算器,数学操作可以直接在控制台中完成。
我们可以用数字做一些简单的加法,例如使用加号( +
)添加10
和20
。
10 + 20;
Output30
除了使用普通数字进行数学运算外,我们还可以为变量分配数字并执行相同的计算。 在这种情况下,我们将数值分配给x
和y
,并将和置于z
。
// Assign values to x and y
let x = 10;
let y = 20;
// Add x and y and assign the sum to z
let z = x + y;
console.log(z);
Output30
同样,我们使用减号( -
)减去表示数字的数字或变量。
// Assign values to x and y
let x = 10;
let y = 20;
// Subtract x from y and assign the difference to z
let z = y - x;
console.log(z);
Output10
我们也可以用负数和浮点数(小数)来加减。
// Assign values to x and y
let x = -5.2;
let y = 2.5;
// Subtract y from x and assign the difference to z
let z = x - y;
console.log(z);
Output-7.7
在JavaScript中注意和注意的一个有趣的事情是添加一个数字和一个字符串的结果 。 我们知道1 + 1
应该等于2
,但是这个方程将有意想不到的结果。
let x = 1 + "1";
console.log(x);
typeof x;
Output11
'string'
JavaScript不会添加两个数字,而是将整个语句转换为一个字符串,并将它们连接在一起。 要注意JavaScript的动态类型,因为它可能会有不良的结果。
在JavaScript中使用加法或减法的常见原因是滚动到id减去固定导航栏的像素高度。
function scrollToId() {
const navHeight = 60;
window.scrollTo(0, window.pageYOffset - navHeight);
}
window.addEventListener('hashchange', scrollToId);
在上面的例子中,点击id会滚动到id上方的60像素。
加法和减法是您将在JavaScript中使用的两种最常用的数学方程式。
乘法与分
乘法和除法运算符也可以在JavaScript中使用,用于查找乘积和数值的商。
星号( *
)用于表示乘法运算符。
// Assign values to x and y
let x = 20;
let y = 5;
// Multiply x by y to get the product
let z = x * y;
console.log(z);
Output100
乘法可用于在应用销售税后计算物品的价格。
const price = 26.5; // Price of item before tax
const taxRate = 0.082; // 8.2% tax rate
// Calculate total after tax to two decimal places
let totalPrice = price + (price * taxRate);
totalPrice.toFixed(2);
console.log("Total:", totalPrice);
OutputTotal: 28.67
斜线( /
)用于表示除法运算符。
// Assign values to x and y
let x = 20;
let y = 5;
// Divide y into x to get the quotient
let z = x / y;
console.log(z);
Output4
计算时间特别有用,例如查找分钟数,或计算测试中完成的正确答案的百分比。
模
一个稍微不太熟悉的算术运算符是模(有时称为模数)运算符,它计算除法后商的余数。 模数由百分号( %
)表示。
作为一个例子,我们知道3
进入9
正好三次,没有余数。
9 % 3;
Output0
我们可以使用模运算符来确定数字是偶数还是奇数,如此功能所示:
// Initialize function to test if a number is even
const isEven = x => {
// If the remainder after dividing by two is 0, return true
if (x % 2 === 0) {
return true;
}
// If the number is odd, return false
return false;
}
// Test the number
isEven(12);
Outputtrue
在上面的例子中, 12
分为2
,因此是偶数。
通常在编程中,模数与条件语句一起用于流量控制。
幂
指数是JavaScript中较新的运算符之一,它允许我们按指数计算一个数字的幂。 求幂的语法是一行中的两个星号( **
)。
10到第五个电源,或10 ^ 5,写成这样:
10 ** 5;
Output100000
10 ** 5
表示与10
乘10
相同10
次:
10 * 10 * 10 * 10 * 10;
另一种写法的方法是使用Math.pow()
方法。
Math.pow(10, 5);
Output100000
使用求幂运算符是找到给定数字权力的简洁方法,但是像往常一样,在方法和运算符之间进行选择时,必须保持与代码库的风格一致。
增量和减少
递增和递减运算符增加或减少一个变量的数值。 它们由两个加号( ++
)或两个减号( --
)表示,并且通常与循环一起使用。
请注意,增量和减量运算符只能用于变量; 尝试在原始数字上使用它们将导致错误。
7++
OutputUncaught ReferenceError: Invalid left-hand side expression in postfix operation
增量和减量运算符可以分类为前缀或Postfix操作,具体取决于运算符是否位于变量之前或之后。
首先,我们可以用++x
来表示前缀增量。
// Set a variable
let x = 7;
// Use the prefix increment operation
let prefix = ++x;
console.log(prefix);
Output8
x
的值增加1。 要看到差异,我们将用y++
来测试postfix的增量。
// Set a variable
let y = 7;
// Use the prefix increment operation
let postfix = y++;
console.log(postfix);
Output7
在Postfix操作中y
的值没有增加。 这是因为在表达式被评估之后,该值不会递增。 运行两次操作将会增加该值。
let y = 7;
y++;
y++;
console.log(y);
Output8
增量或减量运算符最常见于循环中。 在这个for
循环示例中,我们将运行十次操作,从0
开始,并且每次迭代将值增加1
。
// Run a loop ten times
for (let i = 0; i < 10; i++) {
console.log(i);
}
Output0
1
2
3
4
5
6
7
8
9
上面的代码显示了通过使用增量运算符实现的循环的迭代。
我们可以将x++
作为x = x + 1
缩写, x--
作为x = x - 1
缩写。
作业经营者
最常用的运算符之一就是赋值运算符,我们已经看到了它,并用等号( =
)表示。 我们使用=
在右侧的变量右侧分配一个值。
// Assign 27 to age variable
let age = 27;
除了标准赋值运算符之外,JavaScript还具有复合赋值运算符 ,它将算术运算符与=
。
例如,加法运算符将以原始值开始,并添加一个新值。
// Assign 27 to age variable
let age = 27;
age += 3;
console.log(age);
Output30
在这种情况下, age += 3
与写作age = age + 3
。
所有的算术运算符都可以与赋值组合来创建复合赋值运算符。 以下是JavaScript中赋值运算符的参考表。
操作者 | 句法 |
---|---|
分配 | = |
增加分配 | += |
减法分配 | -= |
乘法赋值 | *= |
分工 | /= |
剩余分配 | %= |
指数分配 | **= |
复合赋值运算符通常与循环一起使用,类似于递增和递减,并且当方程需要重复或自动化时被使用。
运算符优先级
虽然我们从左到右阅读,但运算符将按照优先顺序进行评估,就像常规数学一样。
在以下示例中,乘法的优先级高于加法,这决定了方程的结果。
// First multiply 3 by 5, then add 10
10 + 3 * 5;
Output25
如果我们想首先运行加法运算,那么我们应该把它加在括号中,这个括号总是具有最高的优先级。
// First add 10 and 3, then multiply by 5
(10 + 3) * 5;
Output65
以下是JavaScript中运算符优先级的参考表,从最高到最低。 对于递增和递减,postfix的优先级高于前缀。
递增/递减,乘法/除法和加法/减法具有相同的优先级。
操作者 | 句法 |
---|---|
括号 | () |
增量 | ++ |
递减 | -- |
幂 | ** |
乘法 | * |
师 | / |
加成 | + |
减法 | - |
运算符优先级不仅包括算术运算符,还包括赋值运算符,逻辑运算符,条件运算符等。 有关完整列表,请查看Mozilla开发人员网络(MDN)上的运营商优先级 。
结论
在本文中,我们介绍了算术运算符和语法,包括许多熟悉的数学运算符和一些特定于编程的运算符。
另外,我们学习了如何组合算术和赋值来创建复合赋值运算符,以及JavaScript中的操作顺序。