关于Javascript中的变量和类型

105 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
对于入门Javascript,我们肯定要从最基本的变量和类型开始学习起,本文根据大致知识点,总结成表格的形式,更清晰进行总结归纳。

语言类型

Javascript分为基本类型和引用类型

基本类型引用类型
包含undefined、null、Boolean、Number、String、Symbol 、BigIntObject
存储保存在栈内存中栈区内保存变量标识符,堆内存存储对象的地址。
区别值不可变,无属性无方法,可进行值比较值是可变的,可以为引用类型添加属性和方法,也可以删除其属性和方法

基本类型

类型描述
undefined表示未定义,并非关键字,是从未赋值的自然状态 以下情况会返回undefined: 函数默认返回undefined、获取对象不存在的key、获取数组不存在的下标、声明变量,不初始化值
null表示定义了但是为空,是关键字。语义是空值,只有一个值,就是 null
Booleantrue/false
Number数值
String字符串
Symbol表示独一无二的值,是ES6引入的新类型,是一切非字符串的对象key的集合
BigInt可以用任意精度表示整数。目的是为了安全地存储和操作大整数,甚至可以超过数字的安全整数限制

判断JavaScript数据类型的方式

方法优点缺点写法原理
typeof简单,使用typeof()函数来判断基础的数据类型只能校验基础类型,且typeof null为objecttypeof``1 //输出number不同的对象在底层都表示为二进制,在Javascript中二进制前(低)三位存储其类型信息,typeof则根据此来检测
instanceof对于引用类型的支持很好无法对原始类型进行判断[1,2,3] instanceof Array //输出trueinstanceof 检测的是原型,是用来判断 A 是否为 B 的实例
Object.prototype.toString.call能检测所有类型写起来繁琐Object.prototype.toString.call(a) //输出[object Object]是 Object 的原型方法,调用该方法,默认返回当前对象的 [[Class]]
constructor能检测除了null和undefined所有类型易被修改,不可靠true.constructor==Boolean //输出trueconstructor属性返回对创建此对象的数组函数的引用,就是返回对象相对应的构造函数