JavaScript操作符
学习目标
1.掌握什么是表达式
2.掌握javascript操作符的分类
3.掌握算数操作符
什么是表达式
将类型的数据(如常量、变量、函数等),用运算符号按一定的规则链接起来的、有意义的式子称为表达式。
操作符的分类
1.算数操作符
2.逻辑操作符
3.赋值操作符
4.比较操作符
5.三元操作符
JavaScript操作符-算数操作符
(隐式类型转换“5”)
+:加
-:减
*:乘
/:除
%:取余
递增和递减
1.递增: ++a与a++都是对进行递增的操作
区别: ++a先返回递增之后的a的值(1+a)
a++先返回a的原值,再返回递增之后的值
2.递减同理
<script>
var num1=10,
num2=5,
num3=num1++-num2, // ++num1 num1=num1+1
x1=20,
x2=30,
x3=--x1+x2--;
console.log(num1); // 11 // 11
console.log(num3); // 16 // 5
console.log(x1); // 19
console.log(x2); // 29
console.log(x3); // 19+30=49
</script>
JavaScript操作符-赋值操作符
赋值操作符
简单赋值:=
复合赋值:+=、-=、*=、/=、%=
<script>
var a=10;
var b=20;
var str="hello ";
a+=5; // a=a+5
b%=4; // b=b%4;
str+=" world"; // str=str+"world";
console.log(str); // hello world
console.log(a>b); // true
</script>
JavaScript操作符-比较操作符
>、<、>=、<=、==、===、!=、!==
==: 相等,只比较值是否相等
===:相等,比较值的同时比较数据类型是否相等
!=:不相等,比较值是否不相等
!===:不相等,比较值的同时比较数据类型是否相等
返回值:boolean型
var x=10,
y="10",
m=15,
//z=x==y; // 值是否相等
z=x===y, // 全等
n=x!==y;
console.log(n); // true
console.log(null===undefined); // false
JavaScript操作符-三元操作符
var soce=55;
Var result=(soce>=60)?“及格”:“不及格”
Console.log(result)
语法:条件?执行代码1:执行代码2
说明:可代替简单的if语句,如果条件成立,执行代码1,否则执行代码2
var soce=55;
var result=(soce>=60)?"及格":"不及格";
console.log(result); // 不及格
JavaScript操作符-逻辑操作符
逻辑操作符
&&:与,并且
||: 或
!:非
&&:与,并且(同时所有条件成立,返回true。只有一个条件不成立,返回false)
说明:在有一个操作数不是布尔值的情况,逻辑与操作就不一定返回值,
此时它遵循下列规则:
1.如果第一个操作数隐式类型转换后为true,返回最后一个操作数
2.如果第一个操作数隐式类型转换后为false,则返回第一个操作数
3.如果有一个操作数是null,则返回null
4.如果有一个操作数是NaN,则返回NaN
5.如果有一个操作数是undefined,则返回undefined
||:或(只要有一个条件成立,返回true)
说明:在有一个操作数不是布尔值的情况,逻辑与操作就不一定返回值,
此时它遵循下列规则:
1.如果第两个操作数隐式类型转换后为true,返回第一个操作数
2.如果第两个操作数隐式类型转换后为false,则返回第二个操作数
3.如果有两个操作数是null,则返回null
4.如果有两个操作数是NaN,则返回NaN
5.如果有两个操作数是undefined,则返回undefined
!:非
说明:1.无论操作数是什么类型,逻辑非都会返回一个布尔值
2.!!同时使用两个逻辑非操作符时:
第一个逻辑非操作非会基于无论什么操作数返回一个布尔值,
第二个逻辑非则对布尔值求反。
<script>
var num1=10,
num2=20,
num3=30,
str="welcome",
bool=true,
n=null,
m;
/* console.log(num1<num2 && num2<num3); // true
console.log(num1<num2 && num2==num3); // 所有条件都为true才返回true
console.log(num2<num3 && num3>num1 && false);*/
/* console.log(str && num3); // 30 "" false true 0 false true
console.log(80 && 55);
console.log("hello" && 65 && "abc"); // abc
console.log(0 && 88);
console.log("" && 0 && 30>20);*/
console.log(n && num3); // null
console.log(55 && true && 33*"abc"); // NaN
console.log(m && true); // undefined
</script>
<script>
var m;
/*console.log(55>88 || 33<66);
console.log(55!="55" || 88==="88");
console.log("hello" || 0); // hello
console.log(99 || 0 || "abc"); // 99
console.log("" || 88 || true); // 88
console.log("" || 0 || "abc"); // abc
console.log(0 || "" || null); // null
console.log(0 || "" || null || "hello"); // hello
console.log(m || NaN || 99); // 99
console.log("" || m); // undefined
console.log(30*"abc" || 55-"def"); // NaN*/
// 非
console.log(!false); // true
console.log(!88); // false
console.log(!0); // true
console.log(!"red"); //false
console.log(!NaN); //true
console.log(!null); //true
console.log(!!""); // false
console.log(!!"blue"); //true
</script>