zoukankan      html  css  js  c++  java
  • Javascript学习笔记:3种检测变量类型的方法

    ①typeof检测变量类型

    1 console.log(typeof 1);//number
    2 console.log(typeof "a");//string
    3 console.log(typeof true);//boolean
    4 console.log(typeof undefined);//undefined
    5 console.log(typeof (function func(){}));//function
    6 console.log(typeof Symbol())//symbol
    7 console.log(typeof null);//object
    8 console.log(typeof {});//object

    typeof检测变量类型只能返回:number、string、boolean、undefined、function、symbol、object这七种值,可以用来判断基本数据类型,但对于判断引用类型来说还不够具体。这里需要注意的是对于函数、null的typeof检测结果。

    ②instanceof检测变量类型

    1 console.log({} instanceof Object);//true
    2 console.log([] instanceof Array);//true
    3 console.log([] instanceof Object);//true
    4 console.log((function func(){}) instanceof Function);//true
    5 console.log((function func(){}) instanceof Object);//true
    6 console.log(/a{3}/gi instanceof RegExp);//true
    7 console.log(/a{3}/gi instanceof Object);//true

    instanceof只可以用来判断引用类型变量的具体类型,不可以用来判断基本数据类型(如果使用instanceof操作符检测基本数据类型的值,则该操作符返回结果始终都是false)。使用instanceof时,只要后面的数据类型处于引用类型变量所属类型的原型链上,结果都将返回true。所有引用类型的值都是Object实例,所以所有引用类型变量的instanceof Object都将返回true。

    ③constructor检测变量类型

    1 console.log({}.constructor===Object);//true
    2 console.log([].constructor===Array);//true
    3 console.log([].constructor===Object);//false
    4 console.log((function func(){}).constructor===Function);//true
    5 console.log((function func(){}).constructor===Object);//false
    6 console.log((/a{3}/gi).constructor===RegExp);//true
    7 console.log((/a{3}/gi).constructor===Object);//false

    对于所有引用类型的变量,都有一个属性constructor,该属性指向该引用类型的构造函数。当然,constructor不能用于基本数据类型的类型检测。

  • 相关阅读:
    Dos命令快速设置ip、网关、dns地址
    远程桌面连接保存登陆用户以及密码(凭据)备份方法
    如何启用windows8, windows10中被停用的远程桌面,如何连接windows10远程桌面?
    通过日志恢复SQL Server的历史数据
    http://sourceforge.net/projects/rtspdirectshow/
    iphone上实现H264 硬编码
    利用lipo编译合并iPhone模拟器和真机通用的静态类
    在iOS上使用ffmpeg播放视频
    基于.Net的单点登录(SSO)解决方案
    java实现简单的单点登录
  • 原文地址:https://www.cnblogs.com/PolarisSky/p/5276483.html
Copyright © 2011-2022 走看看