• 【面筋烧烤手册】JavaScript数据专题


    JavaScript数据专题

    1、原始数据类型 和 引用数据类型

    原始数据类型 存在栈中 空间小 大小固定 频繁更换

    • Undefined
    • Null
    • String
    • Boolean
    • Number
    • Symbol
    • BigInt

    引用数据类型 存在栈和堆中 栈保存引用堆的指针
    Object(Function Array Date)

    2、数据类型判断

    • typeof()只用于判断原始数据类型 引用数据类型全是Object
    • a instanceof b 通过判断是否是b数据类型的实例 不能判断 数字、字符串、布尔 因为他们不是某一数据类型的实例
    • a.constructor === b 判断实例的构造函数
    • Object.prototype.toString.call(a)
    • 最强的数据类型判断
    //万能的类型检测方法
    const checkType = (arr) => {
    	return Object.prototype.toString.call(arr).slice(8, -1);
    }
    
    • 如果要判断是不是数组
      考虑兼容性,因为isArray是es6的
    if(!Array.isArray){ 
    	Array.isArray = function(arg){ 
    		return Object.prototype.toString.call(arg)==='[object Array]' 
    	} 
    }
    

    3、null与undefined的区别是什么?(空值和未声明)

    null表示为空,代表此处不应该有值的存在,⼀个对象可以是null,代表是个空对象,⽽null本身也是对象。
    undefined表示『不存在』,JavaScript是⼀⻔动态类型语⾔,成员除了表示存在的空值外,还有可能根本就不存在(因 为存不存在只在运⾏期才知道),这就是undefined的意义所在。

    4、隐式类型转换

    在这里插入图片描述

    1. 字符串连接符与算术运算符
      num+Number(xxx)
      在这里插入图片描述
    2. 关系运算符:会把其他数据类型转换成number之后再比较关系
      在这里插入图片描述
    3. 复杂数据类型在隐式转换时会先转成String,然后再转成Number运算
      在这里插入图片描述
    4. 逻辑非隐式转换与关系运算符隐式转换搞混淆
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  • 相关阅读:
    基于java对doc文档的分词,导入数据库
    软件架构 软件质量属性(淘宝)
    c/c++ Java python
    阅读架构漫谈心得体会
    关于ubuntu16.4在vmware中打开只显示桌面,桌面闪烁的问题
    暑假总结07
    暑假总结06
    RandomStringUtils
    spring-data-elasticsearch
    Socket和ObjectOutputStream问题
  • 原文地址:https://www.cnblogs.com/SiriusZHT/p/14365038.html
Copyright © 2020-2023  润新知