js基础 运算符和表达式

一、运算符和表达式

由运算符连接操作的数据,所组成的形式称为表达式。

(1)算数运算符
       +     -      *      /      %     ++   -- 

console.log(num++);   //先打印num的值,然后再加1
console.log(++num);   //先加1,然后再打印num的值。

//例子
var a = 3;
console.log(a++  +  ++a);   //8

(2)关系运算符(比较运算符)
 >   <   ==     >=   <=   !=   ===(全等)  !==(不全等)
 关系运算符的运行结果是布尔型的值(true/false)
== 比较两个值是否相等
===既比较值,同时也比较类型是否相等。 

3 >'10'   //false
//在关系运算符的两端,只要有一个是数值型,另一个也就会隐式转换成数值型,再进行比较。
'3'>'10'  //true
//字符串比较,比较的是Unicode码值,'3'>'10'  实际比较的值是3和1的Unicode码值
'3a'>10
//Number('3a')-->NaN
//注意:任何的数值和NaN比较,都是false,包括NaN.

(3)逻辑运算符
 或者||   并且&&    非!     
|| 关联的两个条件只需要满足其中的一个,结果就为true.
 && 关联的两个条件都满足,结果才是true,否则false.
 ! 取反 

true && true   true
true && false   false
true || false     true
true ||  true     true

逻辑短路
       短路逻辑 &&,当第一个条件为false的时候,整体的表达式就是false,不需要再判断第二个条件。只有第一个条件为true的时候,才会继续判断第二个条件。
      短路逻辑 ||,当第一个调价为true的时候,就不需要再去判断第二个条件。只有第一个条件为false的时候,才会继续第二个。 

(4)位运算符(了解)
 在执行运算的时候,会把数字转换成二进制进行运算。
1 10 11 100 101 110 111...

按位与(&)
3&5 上下两位都是1,结果才是1,否则0.
按位或(|)3|5 上下两位只要有一位是1,结果就是1.
按位异或(^)3^5 上下两位不同为1,相同为0.
按位右移(>>)15>>1 //7 往右移动变小
按位左移(<<)15<<1 //30 往左移动变大 练习:计算7^10 5&8 10>>2 

(5)赋值运算符 
 赋值运算符   =
 扩展赋值运算符 +=     -=   *=    /=   %=   

(6)条件(三目)运算符
 单目(一目/一元)运算符,只需要一个操作数或者表达式
 a++ a-- !true
 
双目(二元)运算符,需要两个操作数或者表达式
 +   -   *  /  >  <  ==  !=  ===  !==  >=   <=   ||  &&  &   |  ^  >>  <<  +=  -=   * =  /= 
 
三目(三元)运算符,需要三个操作数或者表达式
 条件表达式 ?表达式1 :表达式2
 如果条件表达式为true,执行表达式1;如果条件表达式为false,执行表达式2. 

二、相关练习
(1)用户输入金额,输入的值享受8折,最后输出实际应收的金额

var num = parseInt(prompt('请输入金额'));
num *= 0.8;
console.log(num);

(2)判断一个人是否为成年人,是,打印“成年人”,否则打印“未成年人”

var age = 18;
var res2=age>=18?'成年人':'未成年人';
console.log(res2);

(3)任意输入一个年份,判断是否为闰年。 (判断闰年:能被4整除,并且不能被100整除,或者能被400整除 )

//方法1
var year=parseInt(prompt('请输入年份'));
var res = year%4==0 && year%100!=0 ||year%400==0?'是闰年':'不是闰年';
console.log(res);

//方法2
var year = prompt('请输入年份');
if(year%4==0&&year%100!=0||year%400==0){
  alert('闰年');
}else{
  alert('平年');
	};
上一篇: js基础 数据类型
下一篇: js基础 选择执行(流程控制)
作者邮箱: 203328517@qq.com