数据类型转换
数据类型之间的转换
比如数字转成字符串,字符串转成布尔,布尔转成数字等
转换的内容当做一个整体来处理
其他数据类型转成数值
number 强制转换成数值类型
可以转换小数,会保留小数
可以转换布尔值
遇到不可转换的都会返回
NaN
如果可以转成一个合法数字 则转换成数字
parseInt() 转成整数
从第一位开始检查,是数字就转换,直到一个不是数字的内容
如果第一位不能转成合法的数字 那么就立马输出 NaN 然后停止转换
不认识小数点,只能保留整数
var test = '123abc'; console.log(parseInt(test));// 123 这个abc 就是普通字符串 所以没法转成合法的数 console.log(parseInt(test,16));// 告诉转换器 123abc是一个16进制的数字 所以最终结果是转成10进制以后输出 console.log(parseInt('哈哈'));// NaN
其他数据类型转成字符串
String(变量)
任何类型都可以使用这个转成字符串
变量.toString()
不能使用
toString()
方法的有undefined
和null
console.log(typeof null.toString());// 报错 var haha; console.log(typeof haha.toString());// 报错
其他数据类型转成布尔
Boolean(变量)
只有
''
、0
、null
、undefined
、NaN
,这些是false
其余都是
true
运算符
算术运算符
1. +
求和 两边都是数值 或者 布尔
拼接 只要两边有一个是字符串 那么+ 充当拼接的功能
2. -
会执行减法运算
会自动把两边都转换成数字进行运算
3. *
会执行乘法运算
会自动把两边都转换成数字进行运算
4. /
会执行除法运算
会自动把两边都转换成数字进行运算
5. %
会执行取余运算
会自动把两边都转换成数字进行运算
赋值运算符
1. = 赋值
把
=
右边的赋值给等号左边的变量名
var num = 100
2. +=
a += 10 等价于 a = a + 10
3. -=
a -= 10 等价于 a = a - 10
4. *=
a *= 10 等价于 a = a * 10
5. /=
a /= 10 等价于 a = a / 10
6. %=
a %= 10 等价于 a = a % 10
7. **=
num **=2 等价于 num = num**2
比较运算符
1. ==
比较符号两边的值是否相等,不管数据类型
2. ===
比较符号两边的值和数据类型是否都相等
3. !=
比较符号两边的值是否不等
4. !==
比较符号两边的数据类型和值是否不等
5.
大于>
小于<
大于等于<=
小于等于<=
逻辑运算符
逻辑运算符的结果 不一定是布尔类型
逻辑与 &&
两边都是true 结果才是true
两边只要有一个是false 整个结果就是false
逻辑或 ||
两边只要有一个是true 整个结果就是true
遇到true 停止向右判断
逻辑非 !
自增自减运算符
++
每次加1
前置 ++变量 先自增再参与运算
后置 变量++ 先参与运算再自增
--
每次减一
前置 --变量 先自增再参与运算
后置 变量-- 先参与运算再自增
分支结构
if结构
if(条件){
执行语句 //满足条件进到这里 这个语句执行
}
如果if中的条件最终结果是true 才走进后边{} 否则不走进来
条件 结果 要么是真 要么假 所以不能出现一个=
if...else结构
if(条件){
执行语句; // 如果if中的条件最终结果是true这个语句被执行
}
else{
执行的语句; // 如果if的条件最后的结果是false 那么这个语句被执行
}
if...else if...结构
if(条件1){
执行语句; // 条件1 最终结果是true 这个语句被执行
}
else if(条件2){
执行语句; // 条件2 最终结果是true 这个语句被执行
}
else if(条件3){
执行语句; // 条件3 最终结果是true 这个语句被执行
}
else if(条件4){
执行语句; // 条件4
......
}
if...else if...else结构
if(){
执行语句;
}else if(){
执行语句;
}
else if(){
执行语句;
}
else{
执行语句;
}