数据类型指的就是字面量的类型
在JS中一共有六种数据类型
String 字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义
Object 对象
其中 前五种属于基本数据类型 Object属于引用数据类型
JS中可以使用typeof来检查一个变量的类型
语法:typeof 变量
检查字符串时 会返回string var str = "123"; console.log(typeof str) 控制台输出string
检查数值时会返回number var num = "123"; console.log(typeof num) 控制台输出number
1,String字符串
——JS中字符串需要使用引号引起来
——使用单引号 双引号都可以,但不能混着用
var str = 'abdj"; 这种情况是禁止的
——引号不能嵌套,双引号里面不能放双引号,单引号里面也不能放单引号
但是,可以在双引号里放单引号,反之也可以
var str = ""abhv""; 这是禁止的
var str = "'abchk'"; 这是允许的
在字符串中我们可以使用 \ 作为转义字符,当表示一些特殊符号时可以使用 \ 来转义
\" 表示\后面的"就只是一个双引号而已,没有其他意思
\" 表示 "
\' 表示 '
\n 表示 换行
\t 表示 制表符
\\ 表示 \
2.Number
表示 16进制数的时候以 0x 开头 8进制以0(数字零)开头 2进制以 0b 开头
parseInt(a,10)意思是让浏览器解析时以10进制来解析 parseInt的第二个值写的几,就以几进制来解析,这是为了防止 不同浏览器解析标准不同
a = "070"; a = parseInt(a); console.log(a); IE8会当成8进制解析 输出56 而火狐或者chrome会当成十进制解析 输出70
——JS中所有的数值都是Number类型
——包括整数和浮点数(小数)
——JS中可以表示数字的最大值 Number.MAX_VALUE 最小正值 Number.MIN_VALUE
——1.7976931348623157e+308 (科学计数法) 5e-324
如果使用Number表示的数字超过了这个最大值,就会返回一个Infinity(正无穷)
反之会返回一个 -Infinity(负无穷)
注意:Infinity是一个字面量 使用时 不需要加引号 var a = "Infinity" 这是错误的
应该直接写var a = Infinity; 使用typeof检查时也会返回number
——NaN (not a number) 表示不是一个数字 是字面量 使用typeof检查也会返回number
——js中整数的运算基本可以保证精确 但是浮点数的运算不太精确
var a = 0.1 + 0.2; console.log(a) 返回值是0.30000000000000004
3.Boolean 布尔值
——布尔值只有两个,主要是用来做逻辑判断的
true false(都是字面量,使用时不能加引号
var bool = "true"; console.log(bool); 控制台输出true
var bool = "false"; console.log(bool); 控制台输出false
——使用typeof检查时 返回boolean
4.NULL
——只有一个值 null 字面量 不能加引号
null专门用来表示一个为空的对象
——使用typeof来检查 会返回 object
var a = null; console.log(typeof a); 控制台输出object
5.Undefined(未定义)
——只有一个值 undefined 字面量 不能加引号
——使用typeof检查 会返回undefined
出现undefined的情况有{1. 变量未声明 2. 变量声明但未赋值 3. 函数里实参没有个形参赋值 4.return没有返回值}
强制类型转换
把数据类型转换为 number boolean string
1.转换为string
方法一: var a = 123; a = a.toString();
方法二:var a = 123; a = String(a);
2. 转换为Number
方法一: 使用Number()函数
-字符串 - - >数字
1.纯数字 直接转换为数字
2.字符串中有非数字,转换为NaN
3.字符串是空串或者是一个全是空格的字符串,转换为0
- 布尔 - - > 数字
true 转换为 1 false 转换为 0
- null - - > 数字 0
- undefined - - > 数字 NaN
方法二:
3.转换为Boolean值
方法一:
方法二:
连续取反 连续两次非运算 var b = 10; b = !!b;此时 b的类型就为boolean了 (隐式转换)