一、算术运算符
算数运算符有如下几种:
+ - * / %
以上五种是最基本的加减乘除和取余
其中取余的注意事项:例题如下
console.log(10%3);//1
console.log(10%-3);//1
console.log(-10%3);//-1
console.log(-10%-3);//-1
总结:取余结果的正负取决于%左边的正负,也就是两个数取余,首先全看成正数
然后结果的正负和%左边的正负一致即可.
** 幂运算 语法: a ** b 理解为a的b次方
console.log(2**3);//8
++ 和 -- 表示自增1 和自减1
有两种用法: a++ 表示先用在加 ++a表示先加再用
做算数运算的注意事项: 任何编程语言都有一个通病
做小数运算会可能损失精度
console.log(0.1+0.2);//0.300000004
所以JS提供了一个方法 来避免这种情况出现
aaa.toFixed(num); 表示保留小数点后面几位小数
aaa表示某个数 num表示保留几位 如果没写默认就是0
console.log( (0.1+0.2).toFixed(3) );
注意事项: 该方法的返回值是string类型.
字符运算符 就是一个 +
字符之间的运算 通过 + 即可完成拼接
var str1 = "张三";
var str2 = "是猪";
console.log(str1+str2);//张三是猪
注意事项:任何类型 + string = string
所以:我们不仅可以将字符串转型成数字 也可以将任何类型 转成string
最常见的做法: 直接和空字符串相加即可.这样不会影响值的本身.
console.log( typeof (1234 + ""));
二、算术运算符的案例
根据弹窗,用户输入的数据完成求和运算,能够利用运算符计算用户输入的两数之和
为了避免JavaScript的精度问题,将结果保留两位小数。
var num1 = prompt("请输入第一个数字");
var num2 = prompt("请输入第二个数字");
注意:下面写法是错误的.原因: 因为toFieed方法只能给数字使用
但是prompt方法返回的一定是字符串,所以num1+num2的结果就是字符串.无法调用toFixed方法.
alert( (num1 + num2).toFixed(2) );
思考: 是一个一个将Num1和num2转成数字 还是为了节省代码将(num1+num2)看成一个整体然后进行转型
答案:这里不能为了节省代码. 因为string+string是字符串的拼接
num1 = Number(num1);
num2 = Number(num2);
这里注意:可以改进,如果结果是NAN 我们应该给用户提示一个"请输入合法的数据"
思路:将NAN的值弄清楚是什么类型 通过typeof 得知 NAN 是一个String类型
if ( (num1 + num2).toFixed(2) == "NaN") {
alert("请输入合法的数据");
}else{
alert( (num1 + num2).toFixed(2) );
}
三、赋值运算符
赋值运算符:最常见的就是 = 将右边的式子赋给左边.
var a = 2 ;
不常见的有如下:
+= *= -= /= %=
例如
a = a + 1; 等同于 a+=1;
四、比较运算符
比较运算符 用来比较两个值 怎么样 返回结果为boolean类型.
例如常见的有以下: > < >= <= != ==
了解一下的 === 表示全等于
==仅仅是判断值是否相等 ===不仅要值相等而且要类型相等
console.log("1" == 1);//true
console.log("1" === 1);//false