JS数据类型深度解析一

JS数据类型分为哪几个?

  • 基本数据类型(又称为值类型)
  • 引用类型

值类型(储存在栈中):

  • undefined 未定义

  • String 字符串

  • Number 数字

  • Boolean 布尔

  • Symbol 符号

引用类型(储存在堆中):

  • Array 数组
  • Object 对象
  • null 空(有歧义,也可以认为它是值类型)
  • Function 函数

2. 怎么判断数据类型?

  1. 最常见的判断方法:typeof
var a = "iamstring.";
var b = 222;
var c= [1,2,3];
var d = new Date();
var e = function(){alert(111);};
var f = function(){this.name="22";};  
alert(typeof a)  ------------> string
alert(typeof b)  ------------> number
alert(typeof c)  ------------> object
alert(typeof d)  ------------> object
alert(typeof e)  ------------> function
alert(typeof f)  ------------> function
  1. 判断已知对象类型的方法: instanceof
alert(c instanceof Array) ---------------> true
alert(f instanceof Function) ------------> true

注意:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。

  1. 根据对象的constructor判断: constructor
alert(c.constructor === Array) ----------> true
alert(d.constructor === Date) -----------> true
alert(e.constructor === Function) -------> true

注意: constructor 在类继承时会出错

  1. 通用但很繁琐的方法: prototype
alert(Object.prototype.toString.call(a) === ‘[object String]') -------> true;
alert(Object.prototype.toString.call(b) === ‘[object Number]') -------> true;
alert(Object.prototype.toString.call(c) === ‘[object Array]') -------> true;
alert(Object.prototype.toString.call(d) === ‘[object Date]') -------> true;
alert(Object.prototype.toString.call(e) === ‘[object Function]') -------> true;
alert(Object.prototype.toString.call(f) === ‘[object Function]') -------> true;

3.JS数据的逻辑判断

逻辑与 &&

  • var a = true&&88 //88
  • var a = false&&88 //false
  • var a = “” &&false //""

逻辑或 ||

  • var a = false || 88;//88
  • var b= 15||88;//15
  • var b=""||false //false

注意:此处较绕脑,需反复理解

if语句的判断条件 truly变量与falsely变量

if语句是否执行,主要看条件是truly还是falsely

falsely:!!a ====false; 变量

  • !!0 === false;

  • !!NaN === false;

  • !!’’ === false;

  • !!null === false;

  • !!undefined === false;

  • !!false ===false;

truly:!!a ==== true; 变量

  • 除了上述falsely变量的都是truly变量
  • 48
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 44
    评论
评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值