JavaScript的数据类型
-
js中的值,无论是字面量还是变量,都有明确的类型
-
js中的数据类型分为两类,一种是简单数据类型一种是复杂数据类型
1,简单数据的类型
简单数据类型分为五类 ,分别是 字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)
1.1 数字类型(Number)
数值(Number)类型用来定义数值,JavaScript 中不区分整数和小数(浮点数),统一使用 Number 类型表示
var num1 = 123; // 整数
var num2 = 3.14; // 浮点数
NaN:即非数值(Not a Number 的缩写),用来表示无效或未定义的数学运算结构,例如 0 除以 0。
1.2 字符串类型(String)
字符串(String)类型是一段以单引号''或双引号""包裹起来的文本,例如 '123'、"abc"。需要注意的是,单引号和双引号是定义字符串的不同方式,并不是字符串的一部分。
var str1 = "123"; // 双引号
var str2 = 'abc'; // 单引号
1.3 布尔类型(Boolean)
布尔(Boolean)类型只有两个值,true(真)或者 false(假),在做条件判断时使用的比较多,除了可以直接使用 true 或 false 来定义布尔类型的变量外,还可以通过一些表达式来得到布尔类型的值
var a = true; // 定义一个布尔值 true
var b = false; // 定义一个布尔值 false
var c = 2 > 1; // 表达式 2 > 1 成立
console.log(c); // 输出为“真(true)”,所以 c 的值为布尔类型的 true
var d = 2 < 1; // 表达式 2 < 1 不成立
console.log(d); // 输出为“假(false)”,所以 c 的值为布尔类型的 false
1.4 空类型(Null)
Null 是一个只有一个值的特殊数据类型,表示一个“空”值,即不存在任何值,什么都没有,用来定义空对象指针。
1.5 未定义类型(Undefined)
Undefined 也是一个只有一个值的特殊数据类型,表示未定义。当我们声明一个变量但未给变量赋值时,这个变量的默认值就是 Undefined。
var num;
console.log(num); // 输出 undefined
2,数据类型的检测
- js语言是一门动态类型的语言,变量并没有一个单独的数据类型。
- 变量的数据类型,与内部存储的数据有关。内部存储的数据的数据类型发生变化,变量的数据类型也会发生变化
- 我们在使用变量时,需要知道内部存储的数据类型是什么数据类型,避免程序错误
2.1 检测方法
- 使用typeof检测
1.数字(Number)类型检测
var a = 1;
console.log(typeof(a)); // 输出 number
- 字符串(String)类型检测
var a = '1';
console.log(typeof (a)) ; // 输出 string
- 布尔(Boolean)类型检测
var a = true;
console.log(typeof (a)); // 输出 boolean
- 空(Null)类型检测
var a = null;
console.log(typeof (a)); // 输出 object
情况特殊,需要别的检测方法
- 未定义(Undefined)类型检测
var a ;
console.log(typeof (a)); // 输出 undefined
3,数据类型的转换
3.1 转数字类型
- Number(数据)方法
转型函数Number()可以用于任何数据类型,将其他类型转为数字
- 字符串:纯数字字符串转为对应数字,空字符串和空白字符串转为0 ,非空非纯数字字符串转为NaN
var a = '1'
console.log(Number(a)) // 输出 1
var a = ''
console.log(Number(a)) // 输出 0
var a = ' '
console.log(Number(a)) // 输出 0
var a = 'a'
console.log(Number(a)) // 输出 NaN
- 布尔值:true转为1,false转为0
var a = true
console.log(Number(a)) // 输出 1
var a = false
console.log(Number(a)) // 输出 0
- undefined:转为NaN
var a
console.log(Number(a)) // 输出 NaN
- null:转为0
var a = null
console.log(Number(a)) // 输出 0
- parseInt()方法
字符串转整数方法
- 对浮点数进行取整操作
var a = 1.23
console.log(parseInt(a)) // 输出 1
- 将字符串转为整数数字
var a = '2.23'
console.log(parseInt(a)) // 输出 2
- 字符串中,必须是纯数字字符串户或者数字字符开头的字符串,才能转换为正常数字,且只取整数部分
- 如果不是数字打头的字符串,会转换成NaN
var a = 'a1'
console.log(parseInt(a)) // 输出 NaN
- parseFloat()方法
字符串转浮点数方法
- 将字符串转为浮点数数字
- 满足浮点数数字字符必须在字符串开始,如果不在开始,返回值都是NaN
3.2 转字符串类型
-
变量.toString()方法
-
string(变量)方法,有些值没有'tostring()',这个时候可以使用‘string()’,比如‘undefined’和‘null’
-
+号拼接字符串的方式
- num + “”,当+俩边一个操作符是字符串类型,一个操作符是其他类型的时候,会先把其他类型转换成字符串再进行字符串拼接,返回字符串
3.3 转布尔类型
- Boolean(变量)方法
转型函数Boolean()可以用于任何数据类型,将其他数据转型为布尔类型的值
- 转为false:NaN,0,空字符串,null,undefined
- 转为true:非0 非NaN数字,非空字符串