三、数据类型
目录
4.1.2 parseInt(参数) 函数和parseFloat(参数) 函数
1.数据类型的分类
js把数据类型分为两大类:简单(基本)数据类型、引用(复杂)数据类型
2. 基本(简单)数据类型
简单数据类型 | 说明 | 默认值 |
Number | 数字型,包含整型值和浮点型值,如21、0.21 | 0 |
Boolean | 布尔值类型,包含true和false,等价于1和0 | false |
String | 字符串类型,如"张三" | "" |
Undefined | var a; 声明变量a但没有赋值,此时a=undefined | undefined |
Null | var a=null; 声明变量a为空值 | null |
2.1 数字型Number
JS数字类型既可以用来保存整数值,也可以保存小数(浮点数)。
var age=21; //整数
var age1=22.5; //小数
2.1.1 Number的属性
- Number.MAX_VALUE 最大值
console.log(Number.MAX_VALUE); //1.7976931348623157e+308
- Number.MIN_VALUE 最小值
console.log(Number.MIN_VALUE); //5e-324
- Number.POSITIVE_INFINITY 正无穷
console.log(Number.POSITIVE_INFINITY); //Infinity
- Number.NEGATIVE_INFINITY 负无穷
console.log(Number.NEGATIVE_INFINITY); //-Infinity
2.1.2 Number三个特殊的值
- Infinity 代表无穷大,大于任何数值
- -Infinity 代表无穷小,小于任何数值
- NaN Not a number,代表一个非数值,是一个Number类型,因为不能运算导致的返回值
2.1.3 Number的方法
- 数字.toFixed(n) 保留n位小数------保留小数后,数据类型变成String类型
var num=123.143 console.log(num.toFixed(1)); //123.1
-
数字.toString(n) 转换成n进制
var num=123; console.log(num.toString(2)); //1111011
-
isNaN(参数)------全局函数
该函数用来检查其参数是否为非数字值。
特殊情况:返回值 参数值 true NaN、字符串、对象、undefined等非数字值
false 数字 - 隐式转为数:
console.log(isNaN('123')); //false console.log(isNaN(123)); //false console.log(isNaN(true)); //false console.log(isNaN(null)); //false console.log(isNaN('')); //false console.log(isNaN(' ')); //false
-
转为NaN:
console.log(isNaN('123hello')); //true console.log(isNaN(undefined)); //true console.log(isNaN(NaN)); //true console.log(isNaN({})); //true
- 隐式转为数:
实例场景:如何确定用户输入的一定是数字?
var num=prompt('请输入一个数字');
console.log(num);
var res=parseFloat(num)&&Number(num); //纯数字或NaN
if(isNaN(res)){
console.log('num不是数字'+num);
}else{
console.log('num是数字'+num);
}
2.2 字符串型 String
2.2.1 字符串简介
字符串用于存储和处理文本,引号内可以是任何字符,可以用单引号和双引号。js更推荐使用单引号。
var str1="我爱吃玉米"; //使用双引号表示字符串
var str2='我爱吃柚子'; //使用单引号表示字符串
var str3=我爱吃米饭; //报错,没使用引号,会被认为是js代码
2.2.2 字符串引号嵌套
规则:JS不同类型引号可以嵌套,相同类型的引号嵌套会报错。---外双内单,外单内双
(即:单引号内可以嵌套双引号,双引号内可以嵌套单引号。单引号内不能嵌套单引号,双引号不能嵌套双引号)
2.2.3 字符串转义符
类似HTML里面的特殊字符,字符串中也有特殊字符,我们称之为转义符。转义符都是 \ 开头的,常用的转义符及其说明如下:
转义符 | 解释说明 |
\n | 换行符,n是newline的意思 |
\ \ | 斜杠 \ |
\' | ' 单引号 |
\'' | '' 双引号 |
\t | tab 缩进 |
\b | 空格,b是blank的意思 |
2.2.4 字符串长度
字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的 length 属性可以获取整个字符串的长度。
使用方法:参数.length
var str='我是一个粉刷匠';
console.log(str.length); //7
2.2.5 字符串拼接
- 字符串+任何类型=拼接后的新字符串
- 拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串
- 加号'+'在遇到字符串前可以计算,字符串后不计算,只是拼接起来。
//字符串相加 console.log('hello'+' '+'world');//hello world //数值字符串相加 console.log('100'+'100'); //100100 //数值字符串+数值 console.log(1+2+3+'8'+9+8); //6898
+号总结口诀:数值相加,字符相连
2.3 布尔型 Boolean
布尔类型有两个值:true和false,其中true表示真(对),而fasle表示假(错)。
布尔型和数字型相加的时候,true的值为1,false的值为0
console.log(true+1); //2
console.log(false+1); //1
2.4 Undefined和Null
一个声明后没有被赋值的变量会有一个默认值Undefined。进行相连或相加时,注意结果。
var a;
console.log(a); //undefined
console.log(a+'hello'); //undefinedhello
console.log(true+a); //NaN
console.log(11+a); //NaN
一个声明变量给null值,里面存的值为空
var vair=null;
console.log('你好'+vair); //你好null
console.log(11+vair); //11
console.log(true+vair); //1
3.获取检测变量的数据类型
3.1 获取变量数据类型
typeof可用来获取变量的数据类型
var num=21;
console.log(typeof num); //number
不同类型的返回值:
类型 | 案例 | 返回值 |
String | typeof "小白" | "string" |
Number | typeof 21 | "number" |
Boolean | typeof true | "boolean" |
Undefined | typeof undefined | "undefined" |
Null | typeof null | "object" |
注意:两个或两个以上的typeof返回值一直是"string"
var num=123;
console.log(typeof typeof num); //'string'
//过程:typeof 'number'---'string'
console.log(typeof typeof true); //'string'
//过程:typeof 'boolean'---'string'
3.2 字面量
字面量是在源代码中一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值
- 数字字面量:1,2,3
- 字符串字面量:'玉米','柚子'
- 布尔字面量:true,false
4. 数据类型转换
4.1 转成数字型Number
方式 | 说明 | 类型 | 案例 |
Number(参数) | 将其他类型转为数值型 | 强制转换 | Number('12') |
parseInt(参数) | 将其他类型转为整数数值型 | parseInt('78') | |
parseFloat(参数) | 将其他类型转为浮点数数值型 | parseFloat(78.21) | |
+ - * / | 利用算术运算隐式转换为数值型 | 隐式转换 | +'12' '12'-0 '12'*1 '12'/1 |
4.1.1 Number(参数) 函数
- 字符串转数字
'123'—123
''、' '—0
其他—NaN
- Boolean转数字
true—1
false—0
- Undefined转数字
只定义,未赋值的变量—NaN
- Null转数字
null—0
4.1.2 parseInt(参数) 函数和parseFloat(参数) 函数
'123'—123
'123hello'—123
其他—NaN
4.2 转成字符串String
方式 | 说明 | 类型 | 案例 |
参数.toString() | 转成字符串 null和undefined没有此方法 | 强制转换 | var num=1; alert(num.toString); |
String(参数)函数 | 转成字符串 所以类型都可以用它转 | var num=1; alert(String(num)); | |
拼接空串 | 和字符串拼接的结果都是字符串 | 隐式转换 | var num=1; alert(num+' '); |
4.3 转成布尔型 Boolean
方式 | 说明 | 类型 | 案例 | 返回值 |
Boolean()函数 | 其他类型转成布尔值 | 强制转换 | Boolean('true') | true false |
if条件语句 | 其他类型转成布尔值 | 隐式转换 | 例:if(NaN){ console.log('我是条件为真执行的语句'); }else{ console.log('我是条件为假执行的语句'); } //我是条件为假执行的语句 |
注意:只有六个值是false,其他都是真
false、null、0、''空串、NaN、undefined
console.log(Boolean('')); //false
console.log(Boolean(0)); //false
console.log(Boolean(false)); //false
console.log(Boolean(null)); //false
console.log(Boolean(NaN)); //false
console.log(Boolean(undefined)); //false
5. 引用数据类型(对象类型)
Array数组对象、Date日期对象、Function函数、Object对象、RegExp正则