目录
一、数据类型概述
JavaScript 语言的每一个值,都属于某一种数据类型,在js中一共有六种数据类型,分别是:
- String 字符串
- Number 数值
- Boolean 布尔值
- Null 空值
- Undefined 未定义
- Object 对象
还可以把这六类归总成三类:
- 原型数据:数值、字符串、布尔值
- 合成类型:对象
- 特殊值:undefined null
其中对象最为复杂,它又可以分成三个子类:
- 狭义的对象
- 数值
- 函数
在js中有一种方法,可以确定一个值得类型
typeof 数据
我们平常使用最多的方法,会直接返回该数据的数据类型。如下
typeof 123 // "number"
typeof '123' // "string"
typeof false // "boolean"
二、 null和undefined
Null(空值)类型的值只有一个,就是null
null这个值专门用来表示一个为空的对象
使用typeof检查一个null值时,会返回object
Undefined(未定义)类型的值只有一个,就undefind
使用typeof检查一个undefined时也会返回undefined
它们有一个地方不同的是:
null
是一个表示“空”的对象,但是转为数值时为0
而undefined
是一个表示"此处无定义"的原始值,转为数值时为NaN
二、 Boolean 布尔值
Boolean 布尔值
布尔值只有两个,主要用来做逻辑判断
true - 表示真
false- 表示假
使用typeof检查一个布尔值时,会返回boolean
值得注意的一个点时,当其他数据类型转化为布尔值时,大多数都会转化为true,只有以下几个为false
undefined
null
false
0
NaN
""
或''
(空字符串)
四、数值
在JS中所有的数值都是Number类型,
包括整数和浮点数(小数)
JS中可以表示的数字的最大值
Number.MAX_VALUE 1.7976931348623157e+308
Number.MIN_VALUE 大于0的最小值 5e-324
Infinity
如果使用Number表示的数字大于等于2的1024次方时 会返回 Infinity 表示正无穷
如果一个数小于等于2的-1075次方时 会返回 -Infinity 表示负无穷
使用typeof检查Infinity也会返回number
NaN
NaN 是一个特殊的数字,表示Not A Number
使用typeof检查一个NaN也会返回number
其他进制
在js中,如果需要表示16进制的数字,则需要以0x开头
如果需要表示8进制的数字,则需要以0开头
如果要要表示2进制的数字,则需要以0b开头
但是不是所有的浏览器都支持
//十六进制
a = 0x10;
a = 0xff;
a = 0xCafe;
//八进制数字
a = 070;
//二进制数字
//a = 0b10;
//向"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
a = "070";
也可以在parseInt()中传递一个第二个参数,来指定数字的进制
例如:a = parseInt(a,10);
五、string 字符串
String字符串
在JS中字符串需要使用引号引起来
使用双引号或单引号都可以,但是不要混着用
引号不能嵌套,双引号不能放双引号,单引号不能放单引号
有一些平常使用的字符,却在字符串中使用不了,这里就需要转义符了,下面是一些常用的转义符
\0
:null\b
:后退键\f
:换页符\n
:换行符\r
:回车键\t
:制表符\v
:垂直制表符\'
:单引号\"
:双引号\\
:反斜杠
六、对象
对象的内容较多,需要单独对其总结,这里先不做赘述。
七、数据类型转化
将其他的数据类型转换为String
方式一:
调用被转换数据类型的toString()方法
该方法不会影响到原变量,它会将转换的结果返回
但是注意:null和undefined这两个值没有toString()方法,
如果调用他们的方法,会报错
var a = 123;
//调用a的toString()方法
//调用xxx的yyy()方法,就是xxx.yyy()
a = a.toString();
a = true;
a = a.toString();
a = null;
//a = a.toString(); //报错
a = undefined;
//a = a.toString(); //报错
方式二:
调用String()函数,并将被转换的数据作为参数传递给函数
使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调用toString()方法
它会将 null 直接转换为 "null"
将 undefined 直接转换为 "undefined"
//调用String()函数,来将a转换为字符串
a = String(a);
a = null;
a = String(a);
a = undefined;
a = String(a);
将其他的数据类型转换为Number
方式一:
使用Number()函数
字符串 --> 数字
1.如果是纯数字的字符串,则直接将其转换为数字
2.如果字符串中有非数字的内容,则转换为NaN
3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
布尔 --> 数字
true 转成 1
false 转成 0
null --> 数字 0
undefined --> 数字 NaN
转换方式二:
这种方式专门用来对付字符串
parseInt() 把一个字符串转换为一个整数
parseFloat() 把一个字符串转换为一个浮点数
a = "123567a567px";
//调用parseInt()函数将a转换为Number
/*
* parseInt()可以将一个字符串中的有效的整数内容去出来,
* 然后转换为Number
*/
a = parseInt(a);//1234567
/*
* parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
*/
a = "123.456.789px";
a = parseFloat(a);//123.456
/*
* 如果对非String使用parseInt()或parseFloat()
* 它会先将其转换为String然后在操作
*/
将其他的数据类型转换为Boolean
除了以下六个类型 其他数据类型转化为布尔型都为true
undefined
null
false
0
NaN
""
或''
(空字符串)
八、总结
这次我初次接触js,跟着视频做了简单的学习,为了防止遗忘做了初步总结,把数据类型做了一个大致的疏通,不足之处还请包涵,后续经过深层次的学习也会对其进行补充。