1 为什么需要数据类型
在计算机中,不同的数据所需占用的储存空间不同的,为了便于把数据分为所需内存大小不同的数据,充分使用储存空间,于是就定义了不同的数据类型
2 变量的数据类型
变量有名字的数据类型,变量的数据类型决定了如何将代表这些值的位储存到计算机的内存中,JS是一门弱类型的语言,这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。
因为JS具有动态类型,同时意味着相同的变量可用于不同的数据类型
3. 数据类型的分类
JS把数据类型分为两类:
- 简单数据类型
- 复杂数据类型
4. 简单数据类型(基本数据类型)
简单数据类型 | 说明 | 默认值 |
---|---|---|
Number | 数字型,包含整形和浮点值,如21、0.21 | 0 |
Boolean | 布尔值类型,如true,false | false |
String | 字符串类型 | “” |
Undefined | 变量未被初始化 | undefined |
Null | var a = null; 声明了变量a为空值 | null |
4.1 数字型Number
JS数字类型可以用来包含整数和小数。
var num = 10; //int 整型
var PI = 3.14; //float 浮点型
var num1 = 010; //在值前面加上0,表示8进制
console.log(num1);
var num2 = 0xa; // 在值前面加上0x,表示16进制 0-9 a-f
console.log(num2);
console.log(Number.MAX_VALUE); // 数字型的最大值
console.log(Number.MIN_VALUE); // 数字型的最小值
数字型的特殊值
console.log(Infinity); // Infinity
console.log(-Infinity); // -Infinity
console.log(NaN); // NaN例如 console.log("alex" - 100)
- Infinity:代表无穷大,大于任何数值
- -Infinity:代表无穷小,小于任何数值
- NaN:not a number,代表一个非数值
isNaN()
这个方法用来判断非数字,如果是数字返回false,如果不是数字返回true
4.2 字符串型 String
字符串型可以是引号中的任意文本,可以是"双引号"也可以是’单引号’
字符串长度
使用length这个属性
字符串拼接
- 多个字符串可以使用+进行拼接,其拼接方式为 字符串1+字符串2
- 拼接前会把任何类型转换为字符串类型(包括true,false,undefined,null)
4.3 布尔型
布尔型(Boolean)只有两个值true,false
在使用布尔型相加时,true当做0来看,false当做1来看
5. 获取数据类型
typeof 变量名:获取此变量的数据类型
var num = "1";
console.log(typeof num); // number
6. 数据类型的转换
6.1 转换为字符串
方式 | 说明 | 案例 |
---|---|---|
toString() | 转成字符串 | var num=1; alert(num.toString()); |
String() 强制转换 | 转换成字符串 | var num=1; alert(String(num)); |
加号拼接字符串 | 和字符串拼接的结果都是字符串 | var num=1; alert(num + “String”); |
6.2 转换为数字型(重点)
方法 | 说明 | 案例 |
---|---|---|
parseInt(string) | 将string转换为整数数值 | parseInt(“123”) |
parseFloat(string) | 将string转换为浮点数值 | parseFloat(“1.2”) |
Number类强制转换 | 将string转换为数值型 | Number(“11”) |
js 隐式转换(- * /) | 利用算术运算隐式转换为数值型 | ‘12’ - 0 |
- 隐式转换是我们在进行运算的时候,js自动转换了数据类型
6.3 转换为布尔型
方法 | 说明 | 案例 |
---|---|---|
Boolean()函数 | 其他类型转换为布尔值 | Boolean(‘true’) |
- 代表空、否定的值都会被转换为false,如
''
(空字符串)、0、NaN、null、undefined - 其他值则会被转换为true