首先我们需要知道的是在JS中一共有七种数据类型,分别是number、string、boolean、underfined、null、、symbol、object。下面来简要地谈一谈这七种类型:
number
常见的进制有二进制(binary)、八进制(octal)、十进制(decimal)、十六进制(hexadecimal)。
在JS中不同进制的数值是这样表示的:
- 十进制:没有前缀0的数值
- 二进制:前缀0b或者0B的数值
- 八进制:前缀0o或者0O或者0的数值(ps:090这种是不会被当做八进制数的,因为出现了9~~,它会被算作十进制数90)(所以注意最好不要用number类型来存贮电话号码,很有可能被当做是八进制数)
- 十六进制数:前缀0x或者0X的数值
string
- 在JS中既可以使用单引号''也可以使用双引号“”来表示string类型,但是注意不能在引号中加同种引号(如'''或者““a”)如果一定要加的话请使用转义符
- 另外要注意的就是:
''
3. 关于转义符:
常见的有n 换行符、t制表符、反斜杠、'单引号、"双引号 等
4. 多行字符串的表示:
var a = 'a
b'
但是最好不要这样用,因为如果后面有空格你是检查不出来的,浏览器会报错。 推荐使用' ' + ' ' 在ES6中添加了反斜杠` `这种表示方法,但是要也要注意``里面是算上空格和回车的
boolean
布尔类型,为了纪念数学家乔治·布尔命名的。只有两个值:true和false
当我们运用布尔类型的时候要注意与运算(&&)和或运算(||),在此不详述。
null和undefined
null类型只有一个值null,undefined也只有一个值undefined
1. 变量没有值 undefined //语法
2. 有一个对象object但是现在不想给赋值: null 一般是空对象
有一个非对象 不想给赋值: undefined 一般是空非对象 //惯例
object
- 对象是一组键值对(key-value)的集合,键名又叫“属性”(property)
- 属性的值可以是一个函数,那么此时这个属性就叫做“方法”,方法可以像函数那样调用。
- 如果属性的值仍然是一个对象(注意不能是原对象本身),那么就形成了链式引用
var
![0cdb8db6cc148e42d7514009c81a0420.png](https://i-blog.csdnimg.cn/blog_migrate/35fa9dd1ebe84d9aa8c7c1501694f3ca.jpeg)
如上图,如果o1,o2指向同一个对象,那么它们将指向同一个内存地址,此时如果改任何一个变量,另一个变量都会跟着变;但是如果两个变量指向同一个原始类型的值,那么改变其中的一个另外一个不会跟着变(y和x不指向同一个内存地址,如下图)
![de47ae856e388b00a278a5dbae718380.png](https://i-blog.csdnimg.cn/blog_migrate/739c3c2e02b149da63435bf4bf7df46b.jpeg)
- 关于键名:
哈希表里面的key键名可以是空字符串'',但是不能是9a这种首位是数字,但是'9a'可以,即如果不加引号必须符合标识符原则
person['name'] (''不能省) 这种如果''中符合标识符原则的key,那么可以写成person.name,下图是一个有趣的辨析:
![151b183b76224f767f971a50cf524fe2.png](https://i-blog.csdnimg.cn/blog_migrate/c7f152f28645a2497b2aed49a4d6b17e.jpeg)
- 关于delete和in命令:
![e491d115288b342602422c6e937fd6c6.png](https://i-blog.csdnimg.cn/blog_migrate/765456e184239e38ec1099bd59ada1cb.jpeg)