JavaScript数据类型归纳
文章目录
- 1.数据类型
-
-
- 1.1基本数据类型(不包括ES6)
-
- 1.1.1 Number
- 1.1.2 String
- 1.1.3 Boolean
- 1.1.4 undefined
- 1.1.5 null
- 1.1.5 typeof
-
- 2.数据类型转换
-
-
-
- ①转换为字符串型
- ②转换为数字型
- ③转换为布尔型
-
-
1.数据类型
在代码运行时,变量的数据类型是由 JS引擎 根据 = 右边变量值的数据类型来判断 的,运行完毕之后, 变量就确定了数据类型
JS 把数据类型分为两类:
- 基本数据类型(
Number
,String
,Boolean
,Undefined
,Null
) - 复杂数据类型(
Object
)
1.1基本数据类型(不包括ES6)
简单数据类型 | 说明 | 默认值 |
---|---|---|
Number |
数字型,包含整型值和浮点型值,例如18,0.18 | 0 |
Boolean |
布尔值类型,如true,false ,等价于1和0 | false |
string |
字符串类型,例如"格子" | “” |
Null |
var a = null; 声明了变量a为空值 |
null |
Undefined |
var a; 声明了变量a但是没有赋值,此时a=undefined |
undefined(未定义的) |
1.1.1 Number
JavaScript
数字类型既可以用来保存整数值,也可以保存小数(浮点数)
<script> var score = 5 var score = 5.35</script>
- 数字型进制
最常见的进制有二进制、八进制、十进制、十六进制
<script> var score1 = 5 //十进制 var score2 = 05 //八进制 var score3 = 0x5 //十六进制</script>
在JS中八进制前面加0,十六进制前面加 0x
- 数字型范围
JS中数字型数值的最大值用Number.MAX_VALUE
表示
JS中数字型数值的最小值用Number.MIN_VALUE
表示
<script> console.log(Number.MAX_VALUE, Number.MIN_VALUE); //输出:1.7976931348623157e+308 5e-324</script>
- 数字型的一些特殊值
①数字型中用Infinity
来表示无穷大,大于任何有限值,甚至大于上面提到的Number.MAX_VALUE
②同样地,数字型中用-Infinity
来表示无穷小,小于任何有限值,甚至小于上面提到的Number.MIN_VALUE
③NaN
:Not a Number,代表一个非数值
<script> console.log(Infinity > Number.MAX_VALUE); console.log(-Infinity < Number.MIN_VALUE); console.log(NaN); //true //true //NaN</script>
isNaN
这个方法用来判断非数字,并且返回一个值,如果是数字返回的是false,如果不是数字返回的是true
<script> var flag1 = isNaN(18); var flag2 = isNaN('hh'); console.log(flag1); //false console.log(flag2); //true</script>
1.1.2 String
字符串型可以是引号中的任意文本,其语法为 "XXX"
或 'XXX'
<script> var str1 = "格子学前端"; var str2 = '格子学前端';</script>
- 字符串引号嵌套
JS可以用单引号嵌套双引号,或者用 双引号嵌套单引号 (外双内单,外单内双)
<script> var str1 = "格子学'前端''"; var str2 = "格子学'前端'";</script>
- 字符串转义符
类似HTML里面的特殊字符,字符串中也有特殊字符,我们称之为转义符。转义符都是\
开头的,常用的转义符及其说明如下:
转义符 | 解释说明 |
---|---|
\n |
换行符,n是newline |
\ \ |
斜杠\ |
\ ’ |
’ 单引号 |
\ ‘’ |
‘’ 双引号 |
\ t |
tab 缩进 |
\ b |
空格,b是blank的意思 |
- 字符串长度
我们可以通过字符串String的length
属性来得到字符串的长度
<script> var str = "格子"; console.log(str.length); //2</script>
- 字符串的拼接
多个字符串之间可以使用+
进行拼接,其拼接方式为 字符串+
任何类型=
拼接之后的新字符串
<script> var str = "格子"; var score=18; console.log(str+score); //格子18 </script>
1.1.3 Boolean
- 布尔类型有两个值:
true
和false
,其中true
表示真,而false
表示假 - 布尔型和数字型相加的时候,
true
的值为 1 ,false
的值为 0
<script> var flag = true; console.log(flag * 2); //2 //在进行加减乘除计算时Boolean类型的变量的值可看作1或者0</script>
1.1.4 undefined
- 一个声明后没有被赋值的变量会有一个默认值
undefined
- 值为
undefined
的变量与一个字符串型变量相加结果是将undefined
当作字符串来看待 - 值为
undefined
的变量与一个数字型变量相加,结果是NaN
<script> var index; console.log(index); //undifined console.log(index+"of"); //indexof console.log(index+19); //NaN </script>
1.1.5 null
赋给变量 null
值,里面存的值为空
<script> var flag = null; console.log(flag+"格子"); //flag格子 console.log(flag+1); //1</script>
1.1.5 typeof
typeof
可用来获取检测变量的数据类型
<script> var age = 18; var flag = true; var str = "格子"; var index; var kk = null; console.log(typeof (age)); //number console.log(typeof (flag)); //boolean console.log(typeof (str)); //string console.log(typeof (index)); //undefined console.log(typeof (kk)); //object</script>
tips:
- 存储
null
的变量的类型是object
2.数据类型转换
使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。通俗来说,就是把一种数据类型的变量转换成另外一种数据类型。
①转换为字符串型
方式 | 说明 | 案例 |
---|---|---|
toString() |
转成字符串 | var num = 1; alert(num.toString()); |
String() |
转成字符串 | var num = 1; alert(String(num)); |
加号拼接字符串 | 和字符串拼接的结果都是字符串 | var num =1; alert(num+“格子学前端”); |
<script> var index1 = 18; var index2 = 19; var index3 = 20; console.log(index1.toString()); //toString() console.log(String(index2)); //String() console.log(index3 + '格子'); //'+'强制连接 //输出: 18 19 20格子</script>
②转换为数字型
方式 | 说明 | 案例 |
---|---|---|
parselnt(string) 函数 |
将string类型转成整数数值型 | parselnt(‘18’) |
parseFloat(string) 函数 |
将string类型转成浮点数数值型 | parseFloat(‘18.18’) |
Number() 强制转换函数 |
将string类型转换为数值型 | Number(‘12’) |
js 隐式转换(- * /) |
利用算术运算隐式转换为数值型 | ‘12’-0 |
<script> //parseInt() console.log(parseInt('18')); //18 console.log(parseInt('18.18')); //18,截去小数部分 //parseFloat() console.log(parseFloat('18.99')); //18.99 //Number console.log(Number('1888')); //1888</script>
③转换为布尔型
方法 | 说明 | 案例 |
---|---|---|
Boolean()函数 | 其他类型转成布尔值 | Boolean(‘true’); |
- 代表空,否定的值会被转换为false,如 ’ ’ , 0, NaN , null , undefined
- 其余的值都会被被转换为true
<script> console.log(Boolean('')); //false console.log(Boolean(NaN)); //false console.log(Boolean(null)); //false console.log(Boolean(undefined)); //false console.log(Boolean(18)); //true console.log(Boolean('格子')); //true</script>