前端基础——js数据类型及判断方法
一、数据类型
我们通常熟知的数据类型有六种,包括5种基本数据类型(Number, String, Boolean, Undefined, Null)和一种引用数据类型(Object)。ES6又新增了一个基本数据类型Symbol,所以现在应该是七种数据类型。
注:有些地方会把引用类型分为对象(Object)、数组(Array)、函数(Function)三种,还有博客中提到了chrome 67中的新功能BigInt类型,我这里暂时不算进去。
1、Number
数字类型,包括整数和浮点数。
有一个特殊的值NaN,即非数值。js 规定NaN不等于NaN,可以用 isNaN() 来检测是否是非数值型。
2、String
字符串类型,单双引号都行。
3、Boolean
布尔类型,只有两个值,true和false。
4、Undefined
声明了变量,但是没有初始化,则这个变量的类型就是undefined,且其默认初始化值为undefined。
5、Null
null类型的默认值是null,从逻辑角度讲,是表示一个空对象指针。
注:区分undefined和null——当一个变量声明后,未初始化,则该值为undefined;如果这个值是为了保存对象,则修改默认初始化值为null。 所以当检测其类型时,会显示类型为object。
6、Object(Data、Function、Array等)
该类型实例化的对象,是一组数据和功能(函数)的集合。
实例化对象的过程有两种,一种是通过new操作符,一种是通过对象字面量表示法。
Array()、Date()、function()类型,都是从object继承的。
7、Symbol(ES6 新增)
Symbol 类型本质上是一种唯一标识符,可用作对象的唯一属性名。
唯一性
Symbol 类型的对象永远不相等,即使是用同一个变量生成的值也不相等。
隐藏性
for···in,object.keys() 不能访问,可以用专门针对Symbol的方法来获取。
Symbol 类型的一些应用和参考
https://www.cnblogs.com/linziwei/p/10818101.html
https://blog.csdn.net/qq_33408245/article/details/82953143
二、判断方法
1、typeof
typeof可以区分一部分数据类型,结果如下:
typeof 123 //Number typeof 'abc' //String typeof true //Boolean typeof undefined //Undefined typeof null //Object typeof { } //Object typeof [ ] //Object typeof console.log() //Function
2、判断null、object和array
从上面的结果可以看出,用typeof检测 null、数组、对象的结果都是Object,所以需要用其他方法区分他们的类型。
判断null
可以用===null来判断。
判断object和array
① isArray
Array.isArray([]) //true
Array.isArray({}) //false
② instanceof
[] instanceof Array //true
{} instanceof Array //false
③ constructor
{}.constructor //返回object
[].constructor //返回Array
④ Object.prototype.toString.call
Object.prototype.toString.call([]) //["object Array"]
Object.prototype.toString.call({}) //["object Object"]
END-------------------------------
○延伸两句○
深拷贝:修改新变量的值不会影响原有变量的值。默认情况下基本数据类型都是深拷贝。
浅拷贝:修改新变量的值会影响原有的变量的值。默认情况下引用类型都是浅拷贝。
前端基础——js数据类型及判断方法的更多相关文章
- js数据类型的判断方法
判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法的异 ...
- js中的数据类型及判断方法
ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型. 基本类型 ● Boolean ● Null ● Undefined ● Number ● String ● Symbol (ECM ...
- 前端面试:js数据类型
js数据类型是js中的基础知识点,也是前端面试中一定会被考察的内容.本文旨在知识的梳理和总结,希望读者通过阅读本文,能够对这一块知识有更清晰的认识.文中如果出现错误,请在评论区指出,谢谢. js数据类 ...
- 鉴别JS数据类型的全套方法
ECMAScript 标准定义了 7 种数据类型:Boolean.Null.Undefined.Number.String.Symbol(ES6新增)和Object,除Object以外的那6种数据类型 ...
- JS数据类型的判断
在 ECMAScript 规范中,共定义了 7 种数据类型,分为 基本类型 和 引用类型 两大类,如下所示: 基本类型:String.Number.Boolean.Symbol.Undefine ...
- 前端基础------JS
JS中的语句要以分号 ; 为结束符. JS语言基础: 1, JS 的变量名可以使用 下划线, 数字, 字母, $ 组成. 不可以是数字开头 2, 声明变量使用var 变量名. 的格式来进行声明. v ...
- js数据类型及判断数据类型
众所周知,js有7种数据类型 1. null 2. undefined 3. boolean 4. number 5. string 6. 引用类型(object.array.function) 7. ...
- js字符串常用判断方法
转自:http://blog.sina.com.cn/s/blog_6819fa800100j5t6.html 一.方法介绍 function obj$(id) ...
- 前端基础js(四)
一. js [1] html:用于显示页面 [2] css:用于描述页面的样式 [3] javaScript:用于描述页面的行为 二.js中三大部分内容 [1] 基本语法:函数.对象.事件类型(变量, ...
随机推荐
- 微信小程序 icon组件详细介绍
这些是提供的所支持的图标样式,根据需求在此基础上去修改大小和颜色. 主要属性: 使用方式: wxml <!--成功图标--> <icon type="success&quo ...
- hdu2067 简单dp或者记忆化搜索
题意: 小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 2sat建边总结
2sat的基础建边 AND = 1 : ~x -> x ,~y -> y (两个数必须全为1) AND = 0 : y -> ~x ,x -> ~y (两个数至少有一个为 ...
- 一个DDOS病毒的分析(二)
一.基本信息 样本名称:hra33.dll或者lpk.dll 样本大小: 66560 字节 文件类型:Win32的dll文件 病毒名称:Dropped:Generic.ServStart.A3D47B ...
- POJ 3228 二分最大流
题意: 给你N个位置,每个位置都有金矿数量和仓库数量,然后位置和位置之间的距离给了出来,最后问你吧所有的金矿都放到库里面走的路径 最长的最短 是多少? 思路: 比较简单的一个题, ...
- POJ2446 模板盖格子 简单二分匹配
题意: 给你一个n*m的格子,有的格子上有坑,然后让你用1*2的东西去覆盖所有没有坑的格子,不能重叠,坑上也不能放东西覆盖,问是否能成功. 思路: 简单题目,每个格子和四周的 ...
- CVE-2011-0104:Microsoft Office Excel 栈溢出漏洞修复分析
0x01 前言 上一篇讲到了 CVE-2011-0104 漏洞的成因和分析的方法,并没有对修复后的程序做分析.之后在一次偶然的情况下,想看一看是怎么修复的,结果却发现了一些问题 环境:修复后的 EXC ...
- postman使用教程7-参数化引用外部文件测试数据
前言 当同一个接口需要测试不同的参数时,需用到参数化的概念.postman支持从外部文件读取测试数据参数化 设置参数化变量 新建一个collections 专门测试登录接口 设置集合变量usernam ...
- Day003 +和字符串使用的问题
先看一段代码 int a=10; int b=20; System.out.println(""+a+b); System.out.println(a+b+"" ...
- IntelliJ IDEA中项目的包和目录结构显示设置
在新建的目录下再创建一个新目录时,出现了目录没有分层显示,这样使用起来十分不方便. 解决方案:点击右上方的设置按钮,将"compact middle packages"取消勾选,实 ...