算数运算符
- 任何类型的数据类型和字符类型数据做相加操作的时候,其他数据类型会自动转化为字符串类型。字符串拼接,此时的相加操作不再是数学意义上加法,而是表示拼接的意思。
var tep="你"+"好";
alert(tep);
/* 弹框为 你好*/
var tep="你"+120;
alert(tep);
/* 弹框为 你120*/
var tep=true+"好";
alert(tep);
/* 弹框为 true好*/
var tep="你"+null;
alert(tep);
/* 弹框为 你null*/
- 任何数据除了和字符串做相加运算外,先要将纯数字(‘626’) 字符串转成数字在进行计算。
1)与NaN做算术运算的结果始终都是NaN,包括NaN本身和NaN做运算的结果也为NaN
2)字数字符串与NaN做运算,如是纯数字字符串则会转化为数字,否则则会为NaN
var tep= 3 - 'a5';
alert(tep);
/* 弹窗为NaN*/
var tep= 3 - '5';
alert(tep);
/* 弹窗为-2*/
关系运算符
用于进行比较的运算符成为关系运算符:大于>、小于<、大于等于、小于等于<=、相等==、不等!=、全等===、不全等!==
关系运算符中操作为非数字的时候要遵从一下规律:
1.如果两个操作数都是数值,则数值比较。
2.如果两个操作数都是字符串,则比较两个字符串对应的字符编码值
alert('a'>'b');//弹窗false a的ASCII码比b小
alert('asd'>'asw');//弹窗true 顺序比较。
3.两个操作数,有一个是数值时,则将另一个转化为数值,在进行数值比较
4.一个操作数为NaN,==则返回false,!=返回true。NaN和NaN自身不等
alert(NaN==1);//弹窗false
alert(NaN!=2>);//弹窗true
alert(NaN == NaN);//弹窗false
5.在全等和全不等中,如果值和类型都相等,才返回true,反则返回false。
alert(20=‘20’);//false
alert(20=number(‘20’));//true
逻辑运算符
与 : 表达式1 && 表达式2
只有两个表达式的结果为真,与结果运算才为真true
或 : 表达式1 || 表达式2
只有两个表达式的结果为假,与结果运算才为假false
非 : !表达式
1.如果操作数是一个空字符串,返回true。
2.操作数是非空字符串,返回false
3.操作数是0,返回true
4.操作数是任意非0的数值(包括Infinity),返回false
5.操作数是NaN,返回true
6.操作数为undefined,返回true
alert(!undefined)
赋值运算符
自增、自减运算符
a++、a–、++a、–a