资讯专栏INFORMATION COLUMN

【1】JavaScript 基础深入——数据类型深入理解与总结

since1986 / 2353人阅读

摘要:类型的实例首先要理解的含义是例子的意思,实际上是判断是否是的一个实例。

数据类型深入理解 数据类型分类 基本(值)类型(5种)

String:任意字符串

Number:任意的数字

booleantrue/false

nullnull

undefinedundefined

对象(引用)类型(3种)

Object:任意对象

Array:一种特别的对象(数值下标,内部数据是有序的)

Function:一种特别的对象(可以执行)

数据类型判断(3种方式) typeof :返回数据类型的字符串表达

</>复制代码

  1. var a
  2. console.log(a) // undefined
  3. console.log(typeof a) // "undefined"
  4. console.log(a === undefined) // true
  5. console.log(typeof a === undefined) // false
  6. console.log(typeof a === "undefined") // true
  7. console.log(undefined === "undefined") // false
  8. a = 4
  9. console.log(typeof a) // "number"
  10. console.log(typeof a === Number) // false
  11. console.log(typeof a === "number") // true
  12. a = "hahha"
  13. console.log(typeof a) // "string"
  14. a = false
  15. console.log(typeof a) // "boolean"
  16. a = null
  17. console.log(typeof a) // object
  18. console.log(a === null) // true

注意:typeof返回的是数据类型的字符串表达形式。

</>复制代码

  1. typeof true //"boolean"
  2. typeof "hahha" //"string"
  3. typeof 12 //"number"
  4. typeof null //"object"
  5. typeof ccc //"undefined"
  6. typeof function(){} //"function"
  7. typeof {} //"object"
instanceof:类型的实例

</>复制代码

  1. 首先要理解instanceof的含义:

instance例子的意思,A instanceof B 实际上是判断A是否是B的一个实例。理解了这一点,就不难判断类型了。

</>复制代码

  1. var b1 = {
  2. b2: [1, "hehe", console.log],
  3. b3: function () {
  4. console.log("b3")
  5. return function () {
  6. return "Mandy"
  7. }
  8. }
  9. }
  10. console.log(b1 instanceof Object) // true
  11. console.log(b1.b2 instanceof Array, b1.b2 instanceof Object) // true true
  12. console.log(b1.b3 instanceof Function, b1.b3 instanceof Object) //true true
  13. console.log(typeof b1.b2) // "object"
  14. console.log(typeof b1.b3) // "function"
  15. console.log(typeof b1.b2[1]) // "string"
  16. console.log(typeof b1.b2[2]) // "function"
  17. b1.b2[2](555) // 555
  18. console.log(b1.b3()()) // "b3" "Mandy"

注意:

函数既是 Function 类型,也是 Object 类型

数组既是 Array 类型,也是 Object 类型

===

可以判断undefined null

</>复制代码

  1. ccc === "undefined" // true
  2. null === null // true
总结

typeof :

可以判断 undefined / 数值 / 字符串 / 布尔值 / function

不能判断 nullobject, arrayobject

</>复制代码

  1. typeof null // "object"
  2. typeof [] // "object"

instanceof:

判断对象的具体类型

A instanceof B

===:

可以判断 undefined , null

undefinednull 的区别?

undefined 代表定义了,未赋值

null 代表定义了,并且赋值了,只是赋的值为 null

</>复制代码

  1. // undefinednull的区别?
  2. var a
  3. console.log(a) // undefined
  4. a = null
  5. console.log(a) // null
什么时候给变量赋值为null?

初始赋值,表明将要赋值为对象。因为 typeof null === "Object"

结束前,让对象成为垃圾对象(被垃圾回收器回收)

</>复制代码

  1. //起始
  2. var b = null // 初始赋值为null, 表明将要赋值为对象
  3. //确定对象就赋值
  4. b = ["atguigu", 12]
  5. //最后
  6. b = null // 让b指向的对象成为垃圾对象(被垃圾回收器回收)
严格区别变量类型数据类型

数据的类型:

基本类型

对象类型

变量的类型(变量内存值的类型)

基本(值)类型:保存的就是基本类型的数据

引用类型:保存的是地址值

理解实例类型

</>复制代码

  1. // 实例: 实例对象
  2. // 类型: 类型对象
  3. function Person (name, age) {// 构造函数 类型
  4. this.name = name
  5. this.age = age
  6. }
  7. var p = new Person("tom", 12) // 根据类型创建的实例对象

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104058.html

相关文章

  • JS程序

    摘要:设计模式是以面向对象编程为基础的,的面向对象编程和传统的的面向对象编程有些差别,这让我一开始接触的时候感到十分痛苦,但是这只能靠自己慢慢积累慢慢思考。想继续了解设计模式必须要先搞懂面向对象编程,否则只会让你自己更痛苦。 JavaScript 中的构造函数 学习总结。知识只有分享才有存在的意义。 是时候替换你的 for 循环大法了~ 《小分享》JavaScript中数组的那些迭代方法~ ...

    melody_lql 评论0 收藏0
  • 深入理解js

    摘要:详解十大常用设计模式力荐深度好文深入理解大设计模式收集各种疑难杂症的问题集锦关于,工作和学习过程中遇到过许多问题,也解答过许多别人的问题。介绍了的内存管理。 延迟加载 (Lazyload) 三种实现方式 延迟加载也称为惰性加载,即在长网页中延迟加载图像。用户滚动到它们之前,视口外的图像不会加载。本文详细介绍了三种延迟加载的实现方式。 详解 Javascript十大常用设计模式 力荐~ ...

    caikeal 评论0 收藏0
  • ES6-7

    摘要:的翻译文档由的维护很多人说,阮老师已经有一本关于的书了入门,觉得看看这本书就足够了。前端的异步解决方案之和异步编程模式在前端开发过程中,显得越来越重要。为了让编程更美好,我们就需要引入来降低异步编程的复杂性。 JavaScript Promise 迷你书(中文版) 超详细介绍promise的gitbook,看完再不会promise...... 本书的目的是以目前还在制定中的ECMASc...

    mudiyouyou 评论0 收藏0
  • 深入理解javascript按值传递按引用传递

    摘要:引用类型参数的传递与引用类型的复制一样,传递的是内存地址。指向一个新的地址,与不再指向同一个地址官方解释来一发中所有函数的参数都是按值传递的。总结很简单,函数参数都是按值传递都是栈内数据的拷贝。 基本类型与引用类型 值类型(基本类型):String,Number,Boolean,Null,Undefined。 引用类型:Array、Object、Function、Date等有多个值...

    陈江龙 评论0 收藏0

发表评论

0条评论

since1986

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<