文章目录
数值类型Number
- 数值类型的取值:在js中该类型的表现形式
- 整型数字:
100
- 小数:
100.001
- 科学计数法:
5e3 ==> 5乘以10的三次方
Infinity
:表示无穷+Infinity
正无穷-Infinity
负无穷
NaN
:表示不是合法数字的数值类型(not a number)NaN
与任意数据进行运算结果都是NaN
- 其他进制表示法
- 二进制数字:
0b
开头的是二进制数- 二进制:0 1
- 比如:
0b11 ==> 3
- 八进制数字:
0o
或0
开头的是八进制数- 八进制:0 1 2 3 4 5 6 7
- 比如:
0o12 ==> 10
- 十六进制数字:
0x
开头的是十六进制数- 十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
- 比如:
0x11 ==> 17
- 注意:浏览器只能输出十进制数值,其他进制数值会被转化为十进制数值后输出
- 二进制数字:
- 整型数字:
字符串类型String
- 在js中所有使用引号包裹的都是字符串类型数据
- 单引号包裹的内容是字符串 ==> ‘qwert’
- 双引号包裹的内容是字符串 ==> “qwert”
- 反引号包裹的内容是字符串 ==> `qwert`
- 反引号包裹的字符串也叫模板字符串
- 模板字符串的特点:
- 可以换行书写
- 可以识别解析变量
- 变量必须书写在模板字符串的
${}
中- 比如:
qwe${变量}rty
- 在模板字符串的
${}
中可以书写一些简单的表达式
- 比如:
- 变量必须书写在模板字符串的
- 字符串中的特殊内容
\
在字符串中具有转义的含义,是字符串中的转义符,会将\
后面的内容进行转义
布尔类型Boolean
- 取值只有两个
true
在计算机中按1存储,表示真false
在计算机中按0存储,表示假
Undefined类型
- 也叫空类型
- 取值只有一个就是
undefined
- 当声明了一个变量但是未赋值,此时变量值为
undefined
Null类型
- 也叫空类型
- 取值只有一个就是
null
- 只有给变量赋值
null
,值才为null
typeof运算符
- 语法1:
typeof 数据
- 语法2:
typeof(数据)
- 作用:检测数据的类型
- 返回值:检测的结果,以字符串的形式返回检测数据的类型
- 检测数值,返回
'number'
- 检测字符串,返回
'string'
- 检测布尔,返回
'boolean'
- 检测undefined,返回
'undefined'
- 检测null,返回
'object'
- 检测数值,返回
// typeof 数据 与 typeof(数据) 的区别
var r1 = typeof 10 + 10;
// 由于运算符存在优先级问题,会先执行 typeof 10 ==> 'number'
// 然后再执行 'number' + 10 ==> 'number10'
var r2 = typeof(10 + 10);
// 由于运算符存在优先级问题,会先执行 (10 + 10) ==> 20
// 然后再执行 typeof 20 ==> 'number'
console.log(r1); // 'number10'
console.log(r2); // 'number'
// typeof连用的返回值一定是'string'
var r = typeof typeof 100;
// typeof 100 ==> 'number'
// typeof 'number' ==> 'string'
console.log(r); // 'string'
// typeof检测没有声明的变量不会报错而是返回'undefined'
console.log(typeof n); // 'undefined'
console.log(n); // 报错:n is not defined
数据类型转换
1. 其他类型转数值类型
- Number()
- 语法:
Number(数据)
- 作用:将传入的数据转换为数值类型后返回
- 转换过程:
- 将传入的数据当作整体看待
- 如果整体是合法数字则转换为对应的数值
- 如果整体不是合法数字则转换为
NaN
- 转换过程:
- 返回值:转换为数值类型后的数据
- 注意:
- 传入布尔值
true
返回数值1
- 传入布尔值
false
返回数值0
- 传入
null
返回数值0
- 传入
undefined
返回数值NaN
- 传入布尔值
- 语法:
console.log(Number('12')); // 12
console.log(Number('12.1')); // 12.1
console.log(Number('.12')); // 0.12
console.log(Number('12a')); // NaN
console.log(Number('12.1.1')); // NaN
// 特殊的数据
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
- parseInt()
- 语法:
parseInt(数据)
- 作用:将传入的数据转换为数值类型后返回
- 常用于对小数取整
- 转换过程:
- 将传入的数据一位一位的看待,并逐位转换
- 如果第一位是不合法数字,则转换结束并返回
NaN
- 如果第一位是合法数字,则转换继续并保留该数字
- 继续转换下一位,如果是合法数字则转换继续并保留该数字
- 直到某一位转换的是不合法数字则转换结束,并将之前转换的数值返回
- 注意:转换中无法识别小数点
- 返回值:转换为数值类型后的数据
- 语法:
console.log(parseInt('a1234')); // NaN
console.log(parseInt('12a34')); // 12
console.log(parseInt('12.666')); // 12
console.log(parseInt(10.111)); // 10
// 特殊的数据
console.log(parseInt(true)); // NaN
console.log(parseInt(false)); // NaN
console.log(parseInt(null)); // NaN
console.log(parseInt(undefined)); // NaN
- parseFloat()
- 语法:
parseFloat(数据)
- 作用:将传入的数据转换为数值类型后返回
- 转换过程:
- 和
parseInt
的转换过程一模一样,区别是parseFloat
可以识别一位小数点
- 和
- 转换过程:
- 返回值:转换为数值类型后的数据
- 语法:
console.log(parseFloat('a1234')); // NaN
console.log(parseFloat('12a34')); // 12
console.log(parseFloat('12.34')); // 12.34
console.log(parseFloat('192.168.1.1')); // 192.168
// 特殊的数据
console.log(parseFloat(true)); // NaN
console.log(parseFloat(false)); // NaN
console.log(parseFloat(null)); // NaN
console.log(parseFloat(undefined)); // NaN
注意:以上方法不会改变原数据
2. 其他类型转字符串类型
- String()
- 语法:
String(数据)
- 作用:将传入的数据转换为字符串后返回
- 返回值:转换后的字符串
- 语法:
var n = 100;
console.log(String(n)); // '100'
console.log(typeof String(n)); // 'string'
// 特殊的数据
console.log(String(true)); // 'true'
console.log(String(false)); // 'false'
console.log(String(null)); // 'null'
console.log(String(undefined)); // 'undefined'
console.log(String(NaN)); // 'NaN'
- toString
- 语法:
数据.toString()
- 作用:将数据转换为字符串后返回
- 返回值:转换后的字符串
- 注意:
undefined
和null
数据不能使用此方法,会报错- 因为
undefined
和null
身上没有任何属性与方法
- 因为
- 语法:
var n = 100;
console.log(n.toString()); // '100'
console.log(typeof String(n)); // 'string'
// 此处的第一个点会被识别为小数点,在js中的数字中的点默认为小数点
console.log(100.toString()); // 报错
// 第一个点识别为小数点,第二个点是语法的点
console.log(100..toString()); // '100'
// 报错:Cannot read properties of undefined (reading 'toString')
console.log(undefined.toString());
// 报错:Cannot read properties of null (reading 'toString')
console.log(null.toString());
// 特殊的数据
console.log(true.toString()); // 'true'
console.log(false.toString()); // 'false'
console.log(NaN.toString()); // 'NaN'
注意:以上方法不会改变原数据
3. 其他类型转布尔类型
- Boolean()
- 语法:
Boolean(数据)
- 作用:将传入的数据转换为布尔值后返回
- 返回值:布尔值
- 注意:在js中此方法只有传入以下6个数据时结果才为
false
,其余的都是true
- 数值
0
- 数值
NaN
- 空字符串
''
undefined
null
- 布尔值
false
- 数值
- 语法:
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean('')); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(null)); // false
console.log(Boolean(false)); // false
// 除了以上的数据转换结果为false其他任何数据转换结果都为true
注意:以上方法不会改变原数据