JS里的数据类型

2019-04-05  本文已影响0人  vivienYang2019

JS中有7种数据类型:

number, string, boolean, symbol(es6加的), undefined, null, object

!!注意没有array类型也没有function类型

1,number 数值类型

整数和小数:1     1.1     .1

科学记数法:1.23e2(123)

二进制:0b开头的表示二进制    如0b11(3)

八进制:0开头的表示八进制    如011(9)(后来 ES5 添加了 0o11 语法)

十六进制:0x开头的表示十六进制    如0x11(17)

2,string 字符串类型

如:'你好'    "你好" 单引号、双引号都可以

(1)空字符串:''

(2)转义

用转义符:反斜杠'\'转义

var a = '\''     '符号

var n = '\n'    回车

var n = '\t'    tab(制表符)

var n = '\\'    \符号

(3)多行字符串:

  var s = '12345' +

              '67890' // 无回车符号

  或

  var s = `12345

  67890` // 含回车符号

3,boolean 布尔类型

boolean类型有两个值:true和false

a && b(与运算) 在 a 和 b 都为 true 时,取值为 true;否则为 false

a || b (或运算)在 a 和 b 都为 false 时,取值为 false;否则为 true

4,symbol类型

es6新加的,可以看mdn(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol

或阮一峰的es6课程(http://es6.ruanyifeng.com/#docs/symbol)详细了解

每个从Symbol()返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的。

```

var sym1=Symbol();

var sym2=Symbol('foo');

var sym3=Symbol('foo');

```

5,undefined 和 null

都表示没有值

(规范)如果一个变量没有被赋值,那么这个变量的值就是 undefiend

(惯例)如果你想表示一个还没赋值的对象,就用 null。如果你想表示一个还没赋值的字符串/数字/布尔/symbol,就用 undefined(但是实际上你直接 var xxx 一下就行了,不用写 var xxx = undefined)

6,object 对象类型

object 就是上面几种基本类型(无序地)组合在一起

object 里面可以有 object

  var person = {

      name: 'Frank',

      'child': {

          name: 'Jack'

      }, // 最后这个逗号可有可无

  }

object 的 key 一律是字符串,不存在其他类型的 key

object[''] 是合法的

object['key'] 可以写作 object.key

注意 object.key 与 object[key] 不同

\bullet delete操作符

delete object['key']    删除一个key(key和value都没了)

person['name']=undefined    只是把value给清空了,key还在

'key' in object    查看某个key是否在object中

```

var person = {name:'Vivien'}

delete person['name'] 

'name' in person

```

delete.png delete2.png

\bullet 用for in遍历object

for_in.png

7,typeof 操作符

typeof操作符可以查看变量的数据类型

typeof1.png typeof2.png

有两个例外

例外1:null的typeof返回的是object

例外1:function的typeof返回的是function

!!!注意function并不是一个数据类型

上一篇下一篇

猜你喜欢

热点阅读