运算符
一、运算符可分为:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 条件运算符
二、根据操作数不同可分为:
- 一元运算符
- 二元运算符
- 三元运算符
算术运算符
算术运算符: + - * / %
<script type="text/javascript">
var a=3+5;
console.log(a);//8
这是一个字面量,可以直接输出结果:
console.log(3-5);//直接输出表达式的结果 -2
console.log(3%5);//取余
字符串的拼接:
字符串执行 + 时,执行拼接操作,结果是string类型
数字型字符串才能执行算术运算( + - * / %)
var a='你好';
var b='大世界';
console.log(a+b);//拼接 你好大世界
数字型字符串才能够进行够执行算术运(+ - * / %),其他无意义
var a='3';
var b='5';
console.log(a+b);//35
console.log(a*b);//15
console.log(b%a);//2
若“+”两边有一个字符串类型,则实行拼接运算
布尔类型,在参与数学运算时,true是1,false是0
如:
var a=10;
var b='你好';
var c='9';
var d=true;
console.log(a+b);//10你好
condole.log(a+c);//109
console.log(b+d);//11
console.log(c-d);//8
console.log(c+d);//9true
空字符串:
var str='';
空格字符串:
var str=' ';
一元运算符
一元运算符:自增++、自减–
运算符前置:++a、–a
运算符后置:a++、a–
当涉及其他操作符时,运算符前置跟后置效果一样
如:
后置
var a=10;
a++;
console.log(a);//11
前置
var a=10;
++a;
console.log(a);//11
再如:
var a=10;
++a;
a--;
console.log(a);//10
对于变量自身前置后置都一样
若出现赋值语句中,前置运算符(++a),先运算,后赋值
前置运算符(a++),先赋值,后运算
如:
后置:
var a=5;
var b=a++;
console.log(a,b)//a为6,b为5
前置:
var a=5;
var b=++a;
console.log(a,b)//a为6,b为6var
如:
var a=3,b=5
var c=(a++)+(--b)+(a+b);
console.log(a,b,c)//4 4 15
如:
var a=2,b=6
var c=(a++)+(++b)+(a--)+(a+b)+b;
console.log(a,b,c)//2 7 2+7+3+(2+7)+7=28
isNaN()
isNaN() 函数用于检查其参数是否是非数字值。
语法:
isNaN(x)
x: 必需。要检测的值。
如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。
NAN:用于判断是否为数字
isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。
如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。正因为如此,isNaN() 函数是必需的。
如:
<script>
document.write(isNaN(123));//false
document.write(isNaN(-1.23));//false
document.write(isNaN(5-2));//false
document.write(isNaN(0));//false
document.write(isNaN("Hello"));//true
document.write(isNaN("2005/12/12"));//true
</script>
关系运算符
关系运算符又叫比较运算符,二元运算符
关系运算符运算结果为:布尔类型 :true false
二元运算符
二元运算符:>、 < 、 <= 、>=、、!=、===
全等===:既比较数值,又比较数据类型
==:只计较数值
如:
var a='5';
var b=3;
console.log(a>b);//true
console.log(a==5);//true
console.log(a===5);//false
“==” "!="可以判断数值型,也可以比较字符串,比较的是两者是否一致
如:
console.log(5==5);//true
console.log('我'=='你');//false
console.log('me'=='me');//true
特殊的:
console.log(undefined==null);//true
console.log(typeof NaN);//number
赋值运算符
= 、+=、 -=、 *= 、/=、 %=
如:
var a=3;
a+=2;
console.log(a);//5 a=a+2
逻辑运算符
一般情况下,逻辑运算符结果为:布尔类型
逻辑运算符:
||:逻辑或(或者),若两边的操作数有一个为真,则结果为真,均为假,则为假
&&:逻辑与(并且),若两边均为真则为真,否则为假
!:逻辑与(取反)
如:
var a=true||false;
console.log(a);//true
如:
var a=3<=9&&3>=0
console.log(a);//true
剖析:
||:
var a=true||false;
逻辑或中只要有第一个操作数为真,后面的就不再执行了
第一个为假,则结果取决于第二个操作符
如:
var a=5;
var b=true ||a++;
console.log(b,a);//b为true,a为5,因为前面正确了,后面就不用看了
&&:
第一个正确看第二个,结果为第二个
第一个为假,则不执行后面的了
如:
var a=true&&3;//3
var b=false&&9;//false
条件运算符
三元运算符
?:
表达式?结果1:结果2
若表达式为真,则最终结果为1,否则,结果为2
如:
5>=3?console.log('嘿嘿'):console.log('哈哈')//嘿嘿
运算符的优先级:括号>算术运算符>比较运算符>逻辑运算符>条件运算符>赋值
真:true ,除了false里面的其他都为真
假:false, ‘’ 、0、null、undefined
如:
var b,c=null;
var a=b?12:8;
var b=c?9:10;
console.log(b,c) //8 因为a未赋值是undefined;10 因为c为null
如:
var str='0';
var str1=str?12:8;
console.log( str1) //12 因为str是string类型