类型
undefined 、null、 Boolean、string、symbol、object、number 共7种类型,在es5中没有symbol,这是es6特有的,着7种类型中分为基本类型和复杂类型。
- 基本类型:string,number,Boolean,null,undefined,symbol
- 复杂类型:object
undefine和null
undefined类型是表示未定义,他的类型只是一个值,值就是undefined,任何变量在未赋值前就是undefined类型,也可以是该变量的值就是undefined,在某些编程规范中我们会使用void 0 来替换 undefined,这也是有原因的,为什么可以这样替换,因为在我们JavaScript中undefined是一个变量而不是一个关键字,为了确保这个变量无意中被篡改,我们就使用void 0来获取undefined值。
null表示是为空,在实际编程中我们一般不会把变量赋值为undefined,这样可以保证所有值为undefined的变量都是从未赋值的状态,null类型也只是一个值,它的值就是null,但是在JavaScript中null是关键字。可以问随意用null关键字来获取null值。
boolean
布尔类型有两个值就是false和true,它是用来表示逻辑意义上的真和加,同样他的两个值都是关键字。
string
字符串类型,是用来表示文本数据的,不多说,针对字符串的操作也有很多:
- contact():string.contact(stra,starb,...)字符串拼接,等同于“+”,与array.contact()相似。
- indexOf():检查字符串,可以返回某值初次出现的位置,没有的话返回-1。
- slice():可以理解为剪切你想要的字符串,slice(start,end),start是为索引,如果为负数,则表示从尾部开始数起,end也是索引,为指明就是start到最后。
- split():将字符串转化成数据的一种方法,split("通过某种标识来分割-根据需求定义");
- substr():字符串截取,substr(start,length),start 是指开始的索引开始,负数也是从尾部开始算起,length是指想要截取字符串的长度。
- substring():字符串截取。substring(start,stop) ,start是指length就是位置,不是索引,而stop也是位置,不是索引,所以返回字符串的长度是stop减去start。
- toLocaleLowerCase():转化成小写
- tolocaleUpperCase():转化成大写
- toString():返回字符串
10.valueOf():如果调用这个方法的对象不是字符串,那么会抛出异常。 - chartAt():返回某字符的索引值。
以上是字符串方法常用的一部分。
那么在我们不了解的情况下是否想过,字符串是否有最大长度呢?我学习到string是有最大长度的,它的最大值是2^53 - 1,这个数值可以说很大了,而且它的所谓长度并不是我们所理解的字符数,因为String的意义并非字符串,而是字符串的utf16编码,,而且问针对字符串的操作的那些方法都是针对utf16编码来进行的。对BMP(超出范围)需要格外小心。
number
number类型是符合IEEE 754-2008规定的双精度浮点数规则 。有几个例外的情况:
- NaN
- Infinity:无穷大
- -Infinity:负无穷大
symbol
这是es6种引入的新类型,他是一切非字符串的对象key的集合,对于symbol我们在语法中了解到时是独一无二的,那么就是唯一的。
Object
Object是JavaScript 中最复杂的数据类型,他表示的对象的意思,它是一切有形和无形物体的总称。key-value结构。