一、数据类型

  我们通常熟知的数据类型有六种,包括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数据类型及判断方法的更多相关文章

  1. js数据类型的判断方法

    判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法的异 ...

  2. js中的数据类型及判断方法

    ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型. 基本类型 ● Boolean ● Null ● Undefined ● Number ● String ● Symbol (ECM ...

  3. 前端面试:js数据类型

    js数据类型是js中的基础知识点,也是前端面试中一定会被考察的内容.本文旨在知识的梳理和总结,希望读者通过阅读本文,能够对这一块知识有更清晰的认识.文中如果出现错误,请在评论区指出,谢谢. js数据类 ...

  4. 鉴别JS数据类型的全套方法

    ECMAScript 标准定义了 7 种数据类型:Boolean.Null.Undefined.Number.String.Symbol(ES6新增)和Object,除Object以外的那6种数据类型 ...

  5. JS数据类型的判断

    在 ECMAScript 规范中,共定义了 7 种数据类型,分为 基本类型 和 引用类型 两大类,如下所示:    基本类型:String.Number.Boolean.Symbol.Undefine ...

  6. 前端基础------JS

    JS中的语句要以分号 ;  为结束符. JS语言基础: 1, JS 的变量名可以使用 下划线, 数字, 字母, $ 组成. 不可以是数字开头 2, 声明变量使用var 变量名. 的格式来进行声明. v ...

  7. js数据类型及判断数据类型

    众所周知,js有7种数据类型 1. null 2. undefined 3. boolean 4. number 5. string 6. 引用类型(object.array.function) 7. ...

  8. js字符串常用判断方法

    转自:http://blog.sina.com.cn/s/blog_6819fa800100j5t6.html 一.方法介绍 function obj$(id)                     ...

  9. 前端基础js(四)

    一. js [1] html:用于显示页面 [2] css:用于描述页面的样式 [3] javaScript:用于描述页面的行为 二.js中三大部分内容 [1] 基本语法:函数.对象.事件类型(变量, ...

随机推荐

  1. 基于MATLAB的手写公式识别(9)

    基于MATLAB的手写公式识别(9) 1.2图像的二值化 close all; clear all; Img=imread('drink.jpg'); %灰度化 Img_Gray=rgb2gray(I ...

  2. 1.1.08- Python变量的关联,绑定,引用

    Python中关联.绑定,引用的含义: 在Python中,变量没有类型 关联/绑定/引用都是指变量和一个对象的关联关系. 在交互模式下查看变量的绑定关系: >>>help(" ...

  3. 数据库函数-常用的MySQL函数

    1.date_sub() 时间的加减 备注:record 为datetime类型 select record_time as date, order_area as orderArea, order_ ...

  4. Android trap攻防思路整理

    Android trap攻防                                                                      图/文 h_one 0x01 反 ...

  5. Windows本地安全策略

    目录 本地安全策略 密码策略 账户策略 审核策略 用户权限分配 安全选项 本地安全策略 安全策略是影响计算机安全性的安全设置的组合.可以利用本地安全策略来编辑本地计算机上的帐户 系统安全策略包括下面的 ...

  6. node-多进程

    Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能. 每个子进程总是带有三个流对象: child.stdin, ...

  7. NumPy之:使用genfromtxt导入数据

    目录 简介 genfromtxt介绍 多维数组 autostrip comments 跳过行和选择列 简介 在做科学计算的时候,我们需要从外部加载数据,今天给大家介绍一下NumPy中非常有用的一个方法 ...

  8. SparkSQL电商用户画像(二)之如何构建画像

    四. 如何构建电商用户画像 4.1 构建电商用户画像技术和流程 构建一个用户画像,包括数据源端数据收集.数据预处理.行为建模.构建用户画像 有些标签是可以直接获取到的,有些标签需要通过数据挖掘分析到! ...

  9. 缓冲流以及JAVA路径相关问题

    缓冲流 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO 次数,从而提高读写的效率. 字节缓冲流 按字节处理 字符缓冲流 按字符处理 实例练习:文 ...

  10. 2020BUAA-个人博客-案例分析

    个人博客作业-软件案例分析 项目 内容 北航2020软工 班级博客 作业要求 具体要求 我的课程目标 通过案例分析提升自己对于软件工程的认识 课程收获 分析软件,了解软件的定位 第一部分 调研,评测( ...