一、数据类型转换 重点
其他类型转数值类型:
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 底数 ** 指数
var 变量名 = 值; // 把值放到指定名字的空箱子中 这个过程就叫赋值
= 就是赋值符号 右边的内容给到左边的箱子中
结果一定是布尔类型 && 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
字面量\ 标识符\表达式\ 返回值
10 100 true 就是字面量
变量名称 函数名称 标识符
数字 运算符 变量 的组合 => 表达式
返回值 得到的结果
+= 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
= == === 的区别 ?
= 赋值 == 判断值是否相等 === 判断值和类型是否都相等