js数据类型
在 JavaScript 规范中,共定义了七种数据类型,分为 “基本类型” 和 “引用类型” 两大类,如下所示:
基本类型:String、Number、Boolean、Symbol、Undefined、Null
引用类型:Object
基本类型:
String
用于表示零或多个16位Unicode字符组成的字符系列,即字符串。可以由双引号“”或单引号‘’表示,不过以双引号开头的字符串也必须以双引号结尾,单引号也是如此。
在 JavaScript 中,字符串是基本数据类型,本身不存任何操作方法 。为了方便的对字符串进行操作,ECMAScript 提供了一个基本包装类型:String 对象 。它是一种特殊的引用类型,JS引擎每当读取一个字符串的时候,就会在内部创建一个对应的 String 对象,该对象提供了很多操作字符的方法,这就是为什么能对字符串调用方法的原因 。
常用操作方法
字符操作:charAt,charCodeAt,fromCharCode
字符串提取:substr,substring ,slice
位置索引:indexOf ,lastIndexOf
大小写转换:toLowerCase,toUpperCase
模式匹配:match,search,replace,split
其他操作:concat,trim,localeCompare
Number 类型
JavaScript 中的数字类型只有 Number 一种,Number 类型采用 IEEE754 标准中的 “双精度浮点数” 来表示一个数字,不区分整数和浮点数 。
能够表示的数值范围为 21024 到 2-1023 ,即
Number.MAX_VALUE; // 1.7976931348623157e+308
Number.MIN_VALUE; // 5e-324
如果数字超过最大值或最小值,JavaScript 将返回一个不正确的值,这称为 “正向溢出(overflow)” 或 “负向溢出(underflow)” 。
数值转换:
Number(value) // 可以用于任何数据类型,整体转换
parseInt(string [, radix]) // 仅能把字符串转换成数值,部分转换
parseFloat(string) // 仅能把字符串转换成数值,部分转换
NaN,非数字类型。涉及到的 任何关于NaN的操作,都会返回NaN
Boolean 类型
true或false。在 JavaScript 中,所有类型的值都可以转化为与 Boolean 等价的值。
所有对象都被当作 true
空字符串被当作 false
null 和 undefined 被当作 false
数字 0 和 NaN 被当作 false
=== 和 == :
===: 类型相同,并且值相等,才返回 true ,否则返回 false 。
== :值相等,就返回true,否则返回 false 。
Symbol 类型
Symbol是由ES6规范引入的一项新特性,它的功能类似于一种标识唯一性的ID。
和其他基本类型不同的是,Symbol 作为基本类型,没有对应的包装类型,也就是说 Symbol 本身不是对象,而是一个函数。因此,在生成 Symbol 类型值的时候,不能使用 new 操作符 。
Symbol 函数的参数只是表示对当前 Symbol 值的描述,因此,相同参数的 Symbol 函数的返回值也是不相等的。
Undefined 类型
Undefined只有一个值,即undefined值。
使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined
访问对象上不存在的属性,或者数组中超出长度的下标
Null 类型
null类型是 Javascript 中特殊的原始数据类型,被看做空对象指针,只有一个值,即null值, 如果定义的变量准备在之后保存一个对象,那需要将该变量保存为null值。
引用类型:
Object类型
创建Object实例的方式有两种。
第一种是使用new操作符后跟Object构造函数
第二种方式是使用对象字面量表示法
ES6提供的合并对象的方法:Object.assign()
Array类型
数组的每一项可以用来保存任何类型的数据,也就是说,可以用数组的第一个位置来保存字符串,第二个位置保存数值,第三个位置保存对象....另外,数组的大小是可以动态调整的。
Function类型
每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。函数通常是使用函数声明语法定义的