上次我写到了运算符中的“算术运算符”,接下来我继续往下走:
好,在算术运算符中中我们发现了一个问题,就是浮点数相加后,小数点后的几位问题,该如何解决了?
var result = 0.1 + 0.2; // 保留两位小数点 console.log( result.toFixed(2) );
PS:当处理财务或科学数据的时候,在做数字到字符串的转换过程中,你期望自己控制输出中小数点位置和有效数字位数,或者决定是否需要指数计数法。number类为这种数字到字符串的类型转换场景定义了三个方法。
1:toFixed()根据小数点后的指定位数将数字转为字符串,它从不用指数计数法;
2:toExponential()使用指数计数法将数字转换成指数形式的字符串,其中小数点前只有一位,小数点后的位数则由参数指定(也就是说有效数字位数比指定的位数要多一位);
3:toPrecision()根据指定的有效数字位数将数字转换成字符串。如果有效数字小于数字整数部分的位数,则转换成指数形式。
var n = 123456.789; n.toFixed(0);//"123457" n.toFixed(2);//"123456.79" n.toFixed(5);//"123456.78900" n.toExponential(1);//"1.2e+5" n.toExponential(3);//"1.235e+5" n.toPrecision(4);//"1.235e+5" n.toPrecision(7);//"123456e.8" n.toPrecision(10);//"23456.7890"
注:以上PS来自盛森分
2. 后增量/后减量运算符 ++ ,--
以++为例:
var i = 0; // 写法一: i = i + 1; console.log("第1个i的值是:" + i); // 写法二: i++; console.log("第2个i的值是:" + i); // 写法三: ++i; console.log("第3个i的值是:" + i); // 前++、后++ var i = 0, j = i++; // 先赋值后运算 console.log(j); var i = 0, j = ++i; // 先运算后赋值 console.log(j); // 累加10 var i = 0; i+=10; // i = i + 10 console.log(i);
PS:关于先运算还是先赋值我们可以这样:
var i =1, j =i++; //我们可以把上面的步骤这样理解: // j=i // i++ var i =1, j =++i; // i++ //j=i
3. 比较运算符 ( >, <, >=, <=, ==, !=,===,!== )
前面四个就不多说了,大伙都懂,说说后面四个:
==在JS里表示等于,因为=在JS里是赋值的意思;
!==不等于
===全等于,全等于和等于的区别是,全等于包括类型
!==不全等
// 第一题 var price1=100, price2=200; document.write('第一题的值是:'+(price1 > price2)+'<br/>'); // 第二题 var price1=200, price2=100; document.write('第二题的值是:'+(price1 < price2) + '<br/>'); // 第三题 var price1=1199.00, price2=1200.00; document.write('第三题的值是:'+(price1 >= price2)+'<br/>'); // 第四题 var price1=999, price2=1999; document.write('第四题的值是:'+(price1 <= price2)+'<br/>'); // 第五题 var number1=0, string1=""; document.write('第五题的值是:'+(number1 == string1)+'<br/>'); // 第六题 var number1=0, boolean1=false; document.write('第六题的值是:'+(number1 != boolean1)+'<br/>'); // 第七题 var number1=0, boolean1=false; document.write('第七题的值是:'+(number1 === boolean1)+'<br/>'); // 第八题 var boolean1=true, boolean2=true; document.write('第八题的值是:'+(boolean1 !== boolean2)+'<br/>');
PS:有点意思的是:
var num1 = 0, string1 = ""; // 空字符串 console.log( num1 == string1 ); // 0 => false ""=>false // 对比数据类型和值 => false | true console.log( num1 === string1 ); // 0 => false ""=>false console.log( num1 !== string1 );
试试你就知道
4.逻辑运算符( &&, || , !)
&& : 逻辑与 (都为真才是真)
|| : 逻辑或 (有一个真就是真)
! :逻辑非 (“不”的意思)
//第一题 var num1=10, num2=20; document.write('第一题的值是:'+(num1 > 5 && num2 < 20)+'<br/>'); //第二题 var num1=33, num2=34; document.write('第二题的值是:'+(num1 == 33 || num2 > 20)+'<br/>'); //第三题 var boolean1=false, boolean2=true; document.write('第三题的值是:'+(boolean1 || !boolean2)+'<br/>');
六、程序流程控制
1、条件语句 if
var score =55; if( score >= 80 ){ alert("成绩优异"); }else if( score >= 60 ){ alert("成绩合格"); }else{ alert("成绩不合格"); } //else 是其他情况的意思
2、switch语句
var i = 123; switch(i) { case 25: alert("i的值是25"); break; case 100: alert("i的值是100"); break; default: alert("i的值是未知的"); }
var i='B';//注意类型哦,字符串的话记得加引号 switch(i){ case 'A': alert("你已订购A套餐"); break; case 'B': alert("你已订购B套餐"); break; case 'C': alert("你已订购C套餐"); break; case 'D': alert("你已订购D套餐"); break; default: alert("欢迎下次再来"); break; }
PS:break的意思是中断,如果不加,就会继续执行下个语句。
PS:好习惯从一开始抓起,记得写 ; 哦!