首先看下大概流程

【一】基础

接下来看下数据类型分类和判断

(1)数据类型分类

基本类型/值类型5种
  ---字符串String、数字Number、布尔值Boolean、未定义undefined、空null 对象类型/引用类型
  ---Object(任意对象)
    Function(一种特别的对象,可以执行)
    Array(一种特别的对象,数值下标属性,内部数据是有序的)

(2)判断数据类型

typeof(可以判断undefined、数值、字符串、布尔值)
instanceof(判断对象的具体类型,判断是函数还是数组... ...)
===(仅仅可以判断undefined和null)

  1、typeof返回数据类型的字符串表达式,注意"这里返回结果为字符串格式表达的数据类型",且都是小写

    

  2、所以验证undefined数据类型时必须注意,typeof返回的时数据类型的字符串表达式

  3、除了使用typeof还可以使用===严格运算符作比较,如下所示

    

  4、使用typeof判断null

    

     此时发现返回的是object,无法使用typeof判断null数据类型,这里需要用到===严格运算符

console.log(y === null);//true

    此时发现可以用严格运算符===判断的数据类型包含两个,即undefined和null

    原因:这两个数据类型只有一个值

    

  5、接下俩判断复杂数据类型

    instanceof实例隶属于--判断实例对象是否隶属于构造函数

    

   6、万物皆对象  

    正如上面所说,Object是任意对象,Function是一种可以执行的特别的对象,而Array也是一种特别的对象,拥有数值下标,且内部数据是有序的

     

   7、判断函数数据类型还有其他方案,即typeof

    

   8、验证console.log数据类型

    //true

 

(3)小结

  1、对象作用:存储数据

  2、数据也是特殊对象,有序性

  3、类型判断

    

【二】相关问题

(1)什么是实例?

  实例也叫实例对象,是由类型对象即构造函数实例化后得出的对象

  

(2)undefined和null区别?

、undefined代表定义了未赋值
、null代表定义了,且赋值了,但是值为null

(3)何时给变量赋值为null?

注意:
null为空,属于基本数据类型
但typeof null为object

自相矛盾... ...

但是要从开发角度理解,例如b为对象,但是此时数据还没有过来,所以此时可以赋值为null,表示后期将要赋值为对象

此时b便确定了对象赋值,最后如果再为null,则会释放该数据对象所占用的内存---即释放数据对象所占内存

答案:---初始赋值和结束赋值

(4)如何严格区别变量类型和数据类型?

  

.

JS高阶---简介+数据类型的更多相关文章

  1. JS高阶函数的理解(函数作为参数传递)

    JS高阶函数的理解 高阶函数是指至少满足下列条件之一的函数. · 函数可以作为参数被传递 · 函数可以作为返回值输出 一个例子,我们想在页面中创建100个div节点,这是一种写法.我们发现并不是所有用 ...

  2. React.js高阶函数的定义与使用

    /* 高阶函数的简单定义与使用 一: 先定义一个普通组件 二: 用function higherOrder(WrappendComponent) { return } 将组件包裹起来,并用export ...

  3. js高阶函数

    我是一个对js还不是很精通的选手: 关于高阶函数详细的解释 一个高阶函数需要满足的条件(任选其一即可) 1:函数可以作为参数被传递 2:函数可以作为返回值输出 吧函数作为参数传递,这代表我们可以抽离一 ...

  4. js高阶函数应用—函数防抖和节流

    高阶函数指的是至少满足下列两个条件之一的函数: 1. 函数可以作为参数被传递:2.函数可以作为返回值输出: javaScript中的函数显然具备高级函数的特征,这使得函数运用更灵活,作为学习js必定会 ...

  5. js 高阶函数 闭包

    摘自  https://www.cnblogs.com/bobodeboke/p/5594647.html 建议结合另外一篇关于闭包的文章一起阅读:http://www.cnblogs.com/bob ...

  6. 浅谈JS高阶函数

    引入 我们都知道函数是被设计为执行特定任务的代码块,会在某代码调用它时被执行,获得返回值或者实现其他功能.函数有函数名和参数,而函数参数是当调用函数接收的真实的值. 今天要说的高阶函数的英文为High ...

  7. js高阶函数汇总

    map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,函数按照原始数组元素顺序依次处理元素. 注意: map() 不会对空数组进行检测. 注意: map() 不会改变原始数组. ...

  8. JS高阶函数的使用

    1.何为高阶函数呢? JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数.简单来说,就是对其他 ...

  9. JS 高阶函数

    笔记整理自:廖雪峰老师的JS教程 目录 概述 Array中的高阶函数 map(返回新的Array) reduce(返回新的Array) filter(返回新的Array) sort(返回同一Array ...

随机推荐

  1. [LeetCode] 209. Minimum Size Subarray Sum 最短子数组之和

    Given an array of n positive integers and a positive integer s, find the minimal length of a contigu ...

  2. [LeetCode] 87. Scramble String 搅乱字符串

    Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...

  3. Metasploit 常用命令手册

    Installation curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/template ...

  4. 推荐:python科学计算pandas/python画图库matplotlib【转】

    机器学习基础3--python科学计算pandas(上) 地址:https://wangyeming.github.io/2018/09/04/marchine-learning-base-panda ...

  5. 解决VMware虚拟机中centos 7无法上网的问题

    在WMware中安装centos 7后发现无法安装软件,开始以为是镜像服务器的问题,后来通过ping之后发现根本没办法连接到网络.由于很多设置都是默认的,并且虚拟机也是NAT模式,和电脑主机共享网络, ...

  6. base62与long的相互转换

    public static class Converter { private static String keys = "0123456789abcdefghijklmnopqrstuvw ...

  7. BCompare注册文件+密钥被撤销解决方案

    注册码: rssAPVg2OpBjDVo3E0DhGWrjPIq0hsTSuNz13wTuzVHfb2mRgO9bZKn9Bl42D5YEyMSYPXsxzcb08dqbRlbzWNJzJXE6YVa ...

  8. 建模语言UML

    建模语言UML Unified Modeling Language (UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持, ...

  9. Mybatis设置主键自增

    <insert id="insertArea" useGeneratedKeys="true" keyProperty="areaId" ...

  10. SpringBoot整合mybatis及注意事项

    SpringBoot整合mybatis及注意事项 主要步骤 添加依赖 mybatis 在配置文件中配置数据源信息 编写pojo mapper接口 mapeer映射文件 手动配置mybatis的包扫描 ...