标题类型转换
Number
string
Boolean
undefined
null
其他类型转为Number
Number()
String
纯数子 23 23
数字开头 10px NaN
其他类型的字符串 张s NaN
Boolean
true 1
false 0
undefined NaN
null 0
parselnt():将其他类转为整数类型
parseFloat()将其他类型转为浮输电
异同点:parselnt()和Number()
parselnt()100px 转换为100
Number()100px转换为NaN
parselnt()和parsefloat()
parselnt()100.1px转为100
parseFloat()100.1px转为 100.1
转为数值类型
Number() number类型
100px转为NaN
“张三” 转为 NaN
100 转为 100
parseFloat()
‘100.1px’ 转为100.1
“张三” 转为 NaN
parseInt()
100.1px转为100
“张三” 转为NaN
转为字符串
String(num) 什么都可以转
num.toString() 不可以转undefined和null
转为布尔类型
Booolean()
0 -0 “” null undefined NaN false 转为false
其他的全部转为true
//字符串转为数值类型
var a = "王世成";
console.log(a);
console.log(typeof Number(a));//nan
//布尔类行true转数值
var a = true;
console.log(a);
console.log(Number(a)); //为1
//布尔类行fase转数值
var b = false;
console.log(b);
console.log(Number(b));//为0
//undefined未定义类型转数值
var a = undefined;
console.log(typeof Number(a)); //为NaN
//空类型转数值
var a = null;
console.log(typeof Number(a)); //是0
// 转为数值类型parseFloat
var a = "100px";
console.log(parseFloat(a)); //是100
// 转为数值类型parselnt
var b = "100.1px";
console.log(b);
console.log(typeof parseInt(b)); // 100
//转为布尔类型Boolean()
var a = 0;
console.log(Boolean(a)); //false
var b = -0;
console.log(Boolean(b)); //false
var c = null;
console.log(Boolean(c)); //false
var d = undefined;
console.log(Boolean(d)); //false
var e = NaN;
console.log(Boolean(e)); //false
var f = "";
console.log(Boolean(f));//false
//转为字符串
var a = 100;
console.log(typeof a);
console.log(typeof String(a));
var b = true;
console.log(typeof b);
console.log(typeof String(b));
var c = null;
console.log(c);
console.log(typeof String(c));
var d = undefined;
console.log(d);
console.log(typeof String(d));
算数运算符
+ - * / % ++ --
a++和++a的区别
a++ 先操作(输出操作,运算操作),后自身加1。
++a 先自身加1,后操作(输出操作,运算操作)。
赋值运算符
= += -= *= /= %=
var a = 20;
a+ = 3; a+ =3等价于a=a+3(将a+3重新赋值a)
console.log(a); 返回值为23
比较运算符
> < >= <= == != === !== (结果为布尔类型)
console.log(4>5) 返回值false
console.log(3==6) 返回值false
console.log(9!=5) 返回值true
==比较的是值是否相等(不严格)
console.log('10'==10) 返回值true
===比较的是值和类型是否相等(严格)
console.log('10'===10) 返回值false
逻辑运算符
&&(同时,并且) ||(或者 或) !(取反)
&&(一假则假)
console.log(3>2 && 2>1) 返回值为true
console.log(3<2 && 2>1) 返回值为false
||(一真则真)
console.log(3>2 || 3<2 || 2<1) 返回值为true
console.log(3<2 || 2<1) 返回值为false
!(取反)
console.log(false); 返回值为false
console.log(!false); 返回值为true
条件运算符
格式:条件? 语句1: 语句2;
流程:当关系表达式结果为true时,执行语句1,关系为false时,执行语句2。
3>2? console.log("3大于2"):console.log("3小于2");
因为条件3>2为true 所以返回值为语句1:3大于2
var a = 10;
var b = 20;
a>b? alert('a最大'):alert('b最大')
返回值为语句2:b最大
关系表达
原始表达式是表达式的最小单位--他不再包含其他表达式
原始表达式分为字面量和变量
字面量:"123" 12 true 10.2 "kjkd"
变量:var a = 10;
使用关系运算符把俩个表达式接起来的式子,叫做关系表达式。
3>2 7==8 9<9
关系表达式的结果就是true和false
运算符优先级
1 ()、 []
2 !、 ++、-- 、+(正号)、 -(负号) 、~
3 、 /、 %
4 +、 -
5 < 、<=、>、>=
6 ==、!、=
7 &&
8 ||
9 ? :
10 =、+=、-=、=、/=、%=、