数据类型转换
其它类型转数值类型
-
Number();
-
parseInt();
-
parseFloat();
-
非加法运算 隐式转换
Number() 语法: Number(你要转换的数据); 结果: 转换好的数值数据 转换规则: 1.把转的内容当做一个整体来看待 2. 如果整体能转成一个合法的数字 那么就能转成数值 3. 如果其中一个不能转成合法的数字 那么最后的结果是 NaN 4. true => 1 5. false=> 0 6. 认. Number('100.567') => 100.567 // // 1. Number() 函数 // var text = '100a'; // 当做一个整体来看到 // // 整体中有一个不能转成数字 整体结果就是NaN // console.log(text); // console.log(typeof text); // var res = Number(text); // console.log(res); // NaN '1' 1 '0' 0 '0' 0 'a' 不能转成一个数字 // console.log(typeof res); parseInt() 语法: parseInt(你要转换的数据); 结果: 转换好的数值类型数据 规则: 1.不管转换的是什么数据,都是一位一位的看待 2.如果第一位 不能转成合法的数字 那直接输出NaN 停止转换 3.如果第一位可以那么保留这个数字,那么继续向后转换 4. 以此类推直到不能转换或者结束 122abc.5=> 122 注意事项: 不认识小数点 true 不能转成1 => NaN false 不能转成 0 => NaN var num1 = '1000.5adf3'; console.log(num1); console.log(typeof num1); console.log('-----------------'); var res = parseInt(num1); console.log(res); // 1000 不认识小数点所以它停止了 console.log(typeof res); console.log(parseInt(true)); // NaN console.log(parseInt(false));// NaN parseFloat() 语法: parseFloat(你要转换的数据); 结果: 转换好的数值类型数据 规则: 1.不管转换的是什么数据,都是一位一位的看待 2.如果第一位 不能转成合法的数字 那直接输出NaN 停止转换 3.如果第一位可以那么保留这个数字,那么继续向后转换 4. 以此类推直到不能转换或者结束 100.5abc 注意事项: 认识小数点 true 不能转成1 => NaN false 不能转成 0 => NaN //parseFloat() var num1 = '100.456abc'; console.log(num1); console.log(typeof num1); var res = parseFloat(num1); console.log(res); // 100.456 console.log(typeof res); // number // 非加法数学运算转成 数值类型 // 转换规则跟 Number()是一样一样的 // 当做一个整体来看到 整体中如果有一个不能转成数值 那么结果就是NaN
其它类型转字符串
-
String() => 任意类型都可以转
-
toString() => 不能转undefined null 直接报错
-
字符串拼接
String(); 语法: String(你要转换的数据) 结果: 转换好的字符串数据 重点: 任意类型都能转 var num = null; // undefined null 100 100.5 0xabc 都能转 console.log(num); console.log(typeof num); var res = String(num); console.log(res); console.log(typeof res); toString() 语法: 你要转换的数据.toString() 结果: 转换好的字符串数据 重点: 不能转undefined和null 直接报错 字符串拼接 + 左边只要有一个是字符串 最后的结果就是字符串 + 两边都是数值或者bool类型的时候 才进行数学运算
其它类型转布尔类型 重点
后边会经常用来对数据进行判断
Boolean(); 语法: Boolean(要转换的数据); 结果: 转换好的布尔类型数据 true false 数值 字符串 布尔 undefined null 复杂数据类型 js中转成false的情况 其它都是true NaN => false 0 0.0 => false '' "" `` => false undefined => false null => false false => false
运算符
算数运算符
+ 两边都是 数字 或者 布尔类型的时候 才进行数学运算 只要左右有一个是字符串 那么+就进行字符串拼接 - 转换好的数值类型数据 * 乘 / 商 % 10 / 3 = 3 ... 1 被除数 / 除数 = 商 ... 余数 只要余数 不要商 ** 6 ** 2 底数 ** 指数
字面量\ 标识符\表达式\ 返回值
10 100 true 就是字面量
变量名称 函数名称 标识符
数字 运算符 变量 的组合 => 表达式
返回值 得到的结果
赋值运算符
var 变量名 = 值; // 把值放到指定名字的空箱子中 这个过程就叫赋值 = 就是赋值符号 右边的内容给到左边的箱子中 += num += 10 => num = num+10 -= num -= 10 => num = num-10 *= num *= 10 => num = num*10 /= num /= 10 => num = num/10 %= num %= 10 => num = num%10 **= num **= 10 => num = num**10
比较运算符
结果一定是布尔类型
> >= < <= == 不考虑类型 值相等 => true === 值和类型都相等 => true != 值不想等 true !== 值和类型都不相等 -> true = == === 的区别 ? = 赋值 == 判断值是否相等 === 判断值和类型是否都相等
逻辑运算符
&& and 并且 || or 或者 ! 取反 true -> false false->true && 并且 and 符号两边的结果都是true 最终的结果位true 符号两边有一个是false 结果就是false 同真为真,一假则假 短路运算: 从左往右 左边为true 才会继续执行右边的 如果左边为false 那么就停止向右 || 或者 or 符号两边的结果都是false 最终的结果位false 符号两边有一个是true 结果就是true 一真则真,同假为假 短路运算 左边为false 继续往右走 如果左边为true 那么就停止向右 ! not true => false false => true
自增自减运算符
i++ 先参与运算,再加一
++i 先加一,再参与运算