JS 数据类型分类

1. 分类(2大类)


  a 基本(值)类型
    * Number: 任意数值
    * String: 任意文本
    * Boolean: true/false
    * undefined: undefined
    * null: null
 b 对象(引用)类型
    * Object: 任意对象
    * Array: 特别的对象类型(下标/内部数据有序)
    * Function: 特别的对象类型(可执行)

2. 判断

 a、 typeof:
    * 可以区别: 数值, 字符串, 布尔值, undefined, function
    * 不能区别: null与对象, 一般对象与数组

  b、 instanceof
    * 专门用来判断对象数据的类型: Object, Array与Function
  c 、===
    * 可以判断: undefined和null

<script type="text/javascript">

  var a
  console.log(a, typeof a==='undefined', undefined==='undefined') // undefined true false
  a = null
  console.log(typeof a) // 'object'  js语法的bug

  a = {
    a1: [123, true, console.log],
    a2: function () {
      console.log('a2()')
    }
  }
  console.log(typeof a, typeof a.a1, typeof a.a2) // 'object'  'object'  'function'
  console.log(typeof a.a1[2]) // 'function'
  a.a1[2]('.....')

  console.log(a.a1 instanceof Array, a instanceof Array)  // true false
  console.log(a.a1 instanceof Object, a instanceof Object)  // true true

</script>

3、 undefined与null的区别?

  * undefined代表没有赋值
  * null代表赋值了, 只是值为null

a.什么时候值是undefined?

1). 声明但没有赋值的变量

var a console.log(a) // undefined

2). 对象不存在的属性的值
console.log({}.xxx) // undefined
3). 调用的函数没有指定return数据
console.log(
    (function () {
        var b = 3
        })()
  ) ;// undefined

b、什么时候给变量赋值为null呢?

1). 初始时, 赋值为null
var b  = null

// 获取数据, 确定对象
b = {
  name: 'Tom',
  age: 12
}

 2). 结束时, 赋值为null
b = null // b对象不在使用,让b所指向的对象成为垃圾对象, 后面垃圾回收器就会回收释放
console.log(b)

4、严格区别变量类型与数据类型?

* js的变量本身是没有类型的, 变量的类型实际上是变量内存中数据的类型
* 变量类型:
  * 基本类型: 保存基本类型数据的变量
  * 引用类型: 保存对象地址值的变量
* 数据对象
  * 基本类型
  * 对象类型

var c = []

console.log([] instanceof Array) // true

console.log(c instanceof Array) // true

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值