检测数据类型的四种方式


提示:以下是本篇文章正文内容,下面案例可供参考

一、浅谈js运行机制

浏览器加载页面,运行代码的时候:
● 每打开一个页面,就会从计算机的内存条中分配出两块内存:堆内存(heap)和栈内存(stack)
● 堆内存(heap):
○ 主要存放引用数据类型的值
● 栈内存(stack):
○ 给代码提供可执行的环境
○ 存贮基本数据类型的值

1、思考下列代码

代码如下(示例):

var a=12;
var b=a;
console.log(b);
var obj1={"name":"lili","age":12};
var obj2=obj1;
obj2.age=18;
console.log(obj1.age);

1、浏览器打开页面的时候会划分两块内存,堆内存和栈内存:
● 栈内存的作用:
○ 1、给js提供一个可运行的环境
○ 2、存储基本数据类型的值
● 堆内存的作用:存放引用数据类型,对象的话存贮的就是键值对,如果是函数,把整个函数当成字符串进行存储

2、代码自上往下执行 (之前还有一个变量提升阶段,会在后面的课程中进行讲解)
====> 基本数据类型:存在栈内存中, 按值操作
====> 引用数据类型的值比较复杂,存在堆内存中,按引用地址的操作

3、赋值操作的三步曲:
+ 先创建值
+ 再创建变量
+ 最后把创建的变量和值关联在一起

在这里插入图片描述

在js中用来检测数据类型的四种方式

● typeof
● instanceof
● constructor
● Object.prototype.toString.call()

typeof 运算符 详解

typeof 首先返回的是一个字符串,它返回的类型.
● ‘number’
● ‘string’
● ‘boolean’
● ‘undefined’
● ‘object’
● ‘function’
特点:
typeof null 的结果是 “object”(这个是浏览器的BUG:所有的值在计算中都已二进制编码存储,浏览器中把前三位是000的当做对象,而null的二进制前三位就是000,所以被识别为对象。
typeof 普通对象/数组对象/正则对象… 结果都是"object",这样就无法基于typeof区分是普通对象还是数组对象等了

typeof 12  ===> "number"
typeof "zhufeng" ====》 'string'
typeof false   ===>'boolean'
typeof true ====>  'boolean'
typeof null ====> 'object'
typeof undefined ====>'undefined'
typeof [1,2] =====>"object"
typeof function(){} =>"function"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值