1.类型定义
- JS是一种弱类型语言。JS拥有动态类型,相同的变量可以用作不同的类型。
- JS有7种数据类型:三种基本类型(数字,字符串,布尔),两种引用数据类型(对象,数组),两种特殊数据类型(undefined,null)。
- JS有5种原始类型:数字,字符串,布尔,undefined,null。
2.类型判断
对js中不同数据的布尔值类型总结:
- false:空字符串;null;undefined;0;NaN。
- true:除了上面的false的情况其他都为true;
3.两个字符串(数字)的加减乘除运算
- (1)加法运算
let a = '1'
let b = '2'
alert( a + b )
// 12
无论字符串里的内容为什么,都是进行连接运算
- (2)减法乘法除法运算
let a = '1'
let b = '2'
alert( a * b )
alert( a / b )
alert( a - b )
// 2
// 0.5
// -1
如果字符里面为纯的数字,将会转换为数字类型进行运算
4.字符串和数字之间的大小对比
- 纯数字之间比较:1<2 //true;
- 纯数字与数字型字符串之间比较:222 < ‘30’ //false
此时数字型字符串会转成纯数字再与前面的纯数字比较,即222与30相比谁大?当然22喽! - 数字型字符串之间比较:‘222’<‘30’ //true; ‘5’>‘10’ //true
这种比较为ASCII码比较,依次取每个字符,字符转为ASCII码进行比较,ASCII码先大的即为大;因为第一个字符3比2大所以后面就不用考虑了; - 数字与其他字符串之间的比较:222 < ‘abc’ //false
这种情况下,js会将字符串转成数字,但abc不能转为数字,js转数字的方法:parseInt(‘abc’),如果解析不到数字,则将返回一个NaN的值。所以’abc’转换的结果永远是NaN,所以结果永远是false(即222 > ‘abc’ //false)
-其他字符串之间比较:‘d’>‘abc’ //true;
字符串比较为ASCII码比较,d的ASCII码为100,而a的ascii码为97所以结果为true;
5. !是“非”运算符, 运算规则为非0为真,0为假。
- if(a):a == true, 继续执行
- if(!a):a == false , 继续执行