0
点赞
收藏
分享

微信扫一扫

【JavaScript】基础运算符_数学


效果展示

【JavaScript】基础运算符_数学_运算符

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基础运算符_数学</title>
</head>
<body>
<script>/*
运算元 —— 运算符应用的对象。
比如说乘法运算 5 * 2,有两个运算元:左运算元 5 和右运算元 2。
有时候人们也称其为“参数”而不是“运算元”。
*/

/*
如果一个运算符对应的只有一个运算元,那么它是 一元运算符。
比如说一元负号运算符(unary negation)-,它的作用是对数字进行正负转换
*/
let x = 1;
x = -x;
alert(x);

/*
如果一个运算符拥有两个运算元,那么它是 二元运算符。减号还存在二元运算符形式
*/
let m = 1,
n = 3;
alert(n - m); // 2,二元运算符减号做减运算

/*
严格地说,在上面的示例中,我们使用一个相同的符号表征了两个不同的运算符:
负号运算符,即反转符号的一元运算符,
减法运算符,是从另一个数减去一个数的二元运算符。
*/


/* 数学
支持以下数学运算:
加法 +
减法 -
乘法 *
除法 /
取余 %
求幂 **
*/

/*
取余 %
取余运算符是 %,尽管它看起来很像百分数,但实际并无关联。
a % b 的结果是 a 整除 b 的 余数。
*/
console.info(5 % 2); // 1,5 除以 2 的余数
console.info(8 % 3); // 2,8 除以 3 的余数

/*
求幂 **
求幂运算 a ** b 是 a 乘以自身 b 次。
*/
console.info(2 ** 2); // 4 (2 * 2,自乘 2 次)
console.info(2 ** 3); // 8 (2 * 2 * 2,自乘 3 次)
console.info(2 ** 4); // 16 (2 * 2 * 2 * 2,自乘 4 次)

/*
在数学上,求幂的定义也适用于非整数。例如,平方根是以 1/2 为单位的求幂
*/
console.info(4 ** (1 / 2)); // 2(1/2 次方与平方根相同)
console.info(8 ** (1 / 3)); // 2(1/3 次方与立方根相同)

/*
用二元运算符 + 连接字符串

通常,加号 + 用于求和。
但是如果加号 + 被应用于字符串,它将合并(连接)各个字符串。
注意:只要任意一个运算元是字符串,那么另一个运算元也将被转化为字符串。
*/
let s = "my" + "string";
console.info(s); // mystring

console.info('1' + 2 + 3 + 4); // "1234"
console.info(2 + '1' + 2 + 3 + 4); // "21234"

/*
在这里,运算符是按顺序工作。
第一个 + 将两个数字相加,所以返回 4,然后下一个 + 将字符串 1 加入其中,所以就是 4 + '1' = 41。
二元 + 是唯一一个以这种方式支持字符串的运算符。
其他算术运算符只对数字起作用,并且总是将其运算元转换为数字。
*/
console.info(2 + 2 + '1'); // "41",不是 "221"

console.info(6 - '2'); // 4,将 '2' 转换为数字
console.info('6' / '2'); // 3,将两个运算元都转换为数字


/*
数字转化,一元运算符 +
加号 + 有两种形式。一种是上面我们刚刚讨论的二元运算符,还有一种是一元运算符。
一元运算符加号,或者说,加号 + 应用于单个值,对数字没有任何作用。
但是如果运算元不是数字,加号 + 则会将其转化为数字。
*/
// 对数字无效
let a = 1;
console.info(+a); // 1

let b = -2;
console.info(+b); // -2

// 转化非数字
console.info(+true); // 1
console.info(+""); // 0

/*
它的效果和 Number(...) 相同,但是更加简短.
我们经常会有将字符串转化为数字的需求。比如,如果我们正在从 HTML 表单中取值,通常得到的都是字符串。
如果我们想对它们求和,该怎么办?
二元运算符加号会把它们合并成字符串:
*/
let apples = "2";
let oranges = "3";

alert(apples + oranges); // "23",二元运算符加号合并字符串

// 在二元运算符加号起作用之前,所有的值都被转化为了数字
alert( +apples + +oranges ); // 5

// 更长的写法
// alert( Number(apples) + Number(oranges) ); // 5


/* 逗号运算符
逗号运算符 , 是最少见最不常使用的运算符之一。
有时候它会被用来写更简短的代码,因此为了能够理解代码,我们需要了解它。
逗号运算符能让我们处理多个语句,使用 , 将它们分开。
每个语句都运行了,但是只有最后的语句的结果会被返回。
*/
let a1 = (1 + 2, 3 + 4);
alert( a1 ); // 7(3 + 4 的结果)
/*
这里,第一个语句 1 + 2 运行了,但是它的结果被丢弃了。随后计算 3 + 4,并且该计算结果被返回。
逗号运算符的优先级非常低
请注意逗号运算符的优先级非常低,比 = 还要低,因此上面你的例子中圆括号非常重要。

如果没有圆括号:a = 1 + 2, 3 + 4 会先执行 +,将数值相加得到 a = 3, 7,然后赋值运算符 = 执行,
‘a = 3’,然后逗号之后的数值 7 不会再执行,它被忽略掉了。相当于 (a = 1 + 2), 3 + 4。

*/

/*
"" + 1 + 0 = "10" // (1)
"" - 1 + 0 = -1 // (2)
true + false = 1
6 / "3" = 2
"2" * "3" = 6
4 + 5 + "px" = "9px"
"$" + 4 + 5 = "$45"
"4" - 2 = 2
"4px" - 2 = NaN
7 / 0 = Infinity
" -9 " + 5 = " -9 5" // (3)
" -9 " - 5 = -14 // (4)
null + 1 = 1 // (5)
undefined + 1 = NaN // (6)
" \t \n" - 2 = -2 // (7)
*/</script>
</body>
</html>


举报

相关推荐

0 条评论