js基本数据类型

1.分类

基本(值)类型
  • String: 任意字符串
  • Number: 任意的数字
  • Boolean:true/false
  • undefined:undefined
  • null:null
对象(引用)类型
  • Object: 任意对象
  • Function: 一种特别的对象(可以执行)
  • Array: 一种特别的对象(数值下标,内部数据时有序的)

2.判断数据类型的方法

typeof 返回数据类型的字符串表达

typeof可以判断:

  • undefined
  • 数值类型
  • 字符串
  • 布尔值
  • function

不能判断 nullobjectarray

instanceof 判断对象的具体类型

为什么 instanceof 可以判断区分出具体的类型(Object、Array、Function)

  • 原型链

看对象的构造函数,看看它的构造函数的类型
在这里插入图片描述

=== 全等

相关例子

<script type="text/javascript">
  var a
  console.log(a);  // undefined
  console.log(a, typeof a === 'undefined', a === undefined);  // undefined true true
  console.log(undefined === 'undefined');  // false

  a = 4
  console.log(typeof a === 'number');  // true

  a = 'Tom'  // 
  console.log(typeof a === 'string');  // true

  a = true
  console.log(typeof a === 'boolean');  // true

  a = null
  console.log(typeof a); // object

  var b1 = {
    b2: [1, 'abc', console.log],
    b3: function() {
      console.log('b3');
      return function() {
        return '1234'
      }
    }
  }
  console.log(b1 instanceof Object);  // true
  console.log(b1.b2 instanceof Array, b1.b2 instanceof Object);  // true true
  console.log(b1.b3 instanceof Function, b1.b3 instanceof Object);  // true true
  console.log(typeof b1.b3 === 'function');  // true
  console.log(typeof b1.b2[2]);  // function
  b1.b2[2](4)  // 4
  console.log(b1.b3()());  // b3 1234
</script>

3.数据类型的相关问题

(1)undefined 与 null 的区别?
  • undefined代表定义了未赋值
  • null定义并赋值了,只是值为null

(2)什么时候给变量赋值为null?

  • 初始赋值,表明将要赋值为对象
  • 变量结束使用后,让变量指向的对象成为垃圾对象(被垃圾回收器回收)

(3)严格区别变量类型与数据类型?

  • 数据的类型
    • 基本类型
    • 对象类型
  • 变量的类型
    • 基本类型:保存的就是基本类型的数据
    • 引用类型:保存的是地址值

相关例子

<script>
  // 实例:实例对象
  // 类型:类型对象
  function Person(name, age) { // 构造函数 类型
    this.name = name
    this.age = age
  }
  var p = new Person('Tom', 12) // 根据类型创建的实例对象


  // 1.undefined跟null的区别
  var a
  console.log(a);
  a = null
  console.log(a);
  var b = null // 初始赋值为null,表明将要赋值为对象,即object或者array或者function
  // 确定对象就赋值
  b = ['Tom', 12]
  // 最后 让b指向的对象成为垃圾对象(被垃圾回收器回收)
  b = null

  var c = function() {

  }
  // 给c赋值其实是将后面的function对象的地址值保存到了c中
  // typeof c 执行之后其实就是根据c所存储的地址值去找到它所表达的内容,然后发现是function
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值