看完这篇博客,你将了解:

1.js 都有哪些数据类型?
2.简单类型相关细节
3.对象类型相关细节
4.null与undefined的区别
5.其他小知识


一. js有七种数据类型

简单类型:数字,字符串,布尔,Symbol,null,undefined

复杂类型:对象

注1:array和function也在对象类型之中,并非数据类型
注2:typeof函数的返回结果,按理就这七种。但当你打印typeof一个函数时,返回的不是'Object'而是'function',这是js的一个bug

二. 数字类型

  • 十进制
  • 二进制(Binary):0B??
  • 八进制:0??,0O??
  • 十六进制:0X??

三. 字符串类型

1.单、双引号的转义:',"

2.多行字符串的书写(没有回车):

只需在最末尾添加''即可,也可用'+'连接(推荐)

注:命令行中也可用''一次性输入多行命令

例子:

var s = '12345 \
         67890'
var s1 = '12345' + 
    '67890'

3.有回车字符的书写:

重音号`将字符两端括起即可

例子:

var s2 = `12345
      67890`

注:这张图说明了2和3的区别


上面是无回车的换行,下面是有回车的换行

四. null与undefined

1.null与undefined都表示“什么都没有”

2.两者的区别在于:

a.变量没有值,先给它undefined

b.对象没有值,先给它null

所以,一般来说,null表示空对象,undefined表示空“非对象”

五. 对象类型

1.对象,就是一个数据结构,对应哈希表,如图:

2.对象的key可以加引号也可不加引号

不加引号的情况下,变量名必须是合法标识符

加引号的情况下,变量名比较自由

3.可以删除变量的key,value

    delete person['name'] //执行后person对象的name与name的value同时消失

4.对象在面对.运算符时,“翻译”如下:

        obj.x    →    obj['x']

其他知识

1.js的历史

2.性别变量的细节

性别作为变量一般不用sex,用gender。

gender取值一般不用man&woman,用male&female.