javascript代码技巧——史上最全类型判断(代码片段)

欧阳呀 欧阳呀     2022-12-31     280

关键词:

1. typeof(不能区分复杂类型)

console.log(typeof bool); //boolean
console.log(typeof num); //number
console.log(typeof str); //string
console.log(typeof und); //undefined
console.log(typeof nul); //object
console.log(typeof arr); //object
console.log(typeof obj); //object
console.log(typeof fun); //function
console.log(typeof s1); //symbol

2. instanceof(不能识别基础类型)

console.log(bool instanceof Boolean); // false
console.log(num instanceof Number); // false
console.log(str instanceof String); // false
console.log(und instanceof Object); // false
console.log(nul instanceof Object); // false
console.log(arr instanceof Array); // true
console.log(obj instanceof Object); // true
console.log(fun instanceof Function); // true
console.log(s1 instanceof Symbol); // false

3. constructor

  • 有局限 => constructor可以被篡改,null、undefined没有construstor
console.log(bool.constructor === Boolean); // true
console.log(num.constructor === Number); // true
console.log(str.constructor === String); // true
console.log(arr.constructor === Array); // true
console.log(obj.constructor === Object); // true
console.log(fun.constructor === Function); // true
console.log(s1.constructor === Symbol); //true

4. Object.prototype.toString.call(全面可靠)

const isType = (value) => Object.prototype.toString.call(value).toLowerCase();
isType(null); // '[object null]'
isType(undefined); // '[object null]'
isType([]); // '[object array]'
isType(); // '[object object]'
isType(1); // '[object number]'
isType("1"); // '[object string]'
isType(true); // '[object boolean]'

1. 希望本文能对大家有所帮助,如有错误,敬请指出

2. 原创不易,还请各位客官动动发财的小手支持一波(关注、评论、点赞、收藏)

史上最全html和css布局技巧(代码片段)

单列布局水平居中水平居中的页面布局中最为常见的一种布局形式,多出现于标题,以及内容区域的组织形式,下面介绍四种实现水平居中的方法(注:下面各个实例中实现的是child元素的对齐操作,child元素的父容器是parent元... 查看详情

史上最全的ideadebug调试技巧(超详细!建议收藏!)(代码片段)

来源:https://www.cnblogs.com/chiangchouDebug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代... 查看详情

史上最全的ideadebug调试技巧(超详细!建议收藏!)(代码片段)

来源:https://www.cnblogs.com/chiangchouDebug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代... 查看详情

史上最全的变量作用域和内存问题

(一)JavaScript变量能够用来保存两种类型的值:基本类型值和引用类型值。基本类型的值源自下面5种基本数据类型:Undefined、Null、Boolean、Number和String。基本类型值和引用类型值具有下面特点:1.基本类型值在内存中占领固定大... 查看详情

史上最全的变量作用域和内存问题

(一)JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值。基本类型的值源自以下5种基本数据类型:Undefined、Null、Boolean、Number和String。基本类型值和引用类型值具有以下特点:1.基本类型值在内存中占据固定大... 查看详情

kotlin入门教程史上最全最易于理解最全面的文章(代码片段)

这里写自定义目录标题前言Kotlin学习笔记1.val和var区别2.简单变量之间的转换3.数组变量的声明4.字符串字符串与基本类型的转换字符串常用方法字符串模板及其拼接5.容器集合Set/MutableSet队列List/MutableList映射Map/MutableMap6.条件分支... 查看详情

python知识点(史上最全)(代码片段)

...09;python简介Python是一种解释型语言Python使用缩进对齐组织代码执行,所以没有缩进的代码,都会在载入时自动执行数据类型:整形int无限大浮点型float小数复数complex由实数和虚数组成Python中有6个标准的数据类型:... 查看详情

史上最全的mysql数据类型汇总-(上)

​​mysql​​支持多种数据类型,主要有数值类型、日期/时间类型以及字符串类型。整数类型数值型数据类型主要用来存储数字,​​mysql​​提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围... 查看详情

python二级考试知识点(史上最全)(代码片段)

Python二级考试知识点(一)1、Python语言基本语法元素考点1.1程序的基本语法元素:程序的框架、缩进、注释、变量、命名、保留字、数据类型、赋值语句、库引用33个保留字6种数据类型4种引用方法:import库、from... 查看详情

史上最全的mysql数据类型汇总(下)

接着上文继续来梳理,上文我们写到了日期与时间类型中的​​time​​​类型,然后我们接着来写日期与时间类型中的​​date​​类型。date类型​​date​​类型用在仅需要日期值时,没有时间部分,在存储时需要3字节。日期... 查看详情

史上最全最新java面试题合集二(附答案)(代码片段)

...。51、类ExampleA继承Exception,类ExampleB继承ExampleA。有如下代码片断:trythrownewExampleB("b")catch(ExampleAe)System.out.println("ExampleA");catch(Exceptione)System.out.println("Exception");请问执行此段代码的输出是什么?答:输出:ExampleA。(根据里... 查看详情

史上最全jquery知识点小结(上)(代码片段)

...交流!!!持续更新中…文章目录1.jQuery概述JavaScript库jQuery概念jQuery的入口函数jQuery的顶级对象$jQuery对象和DOM对象2.jQuery常用API2.1jQuery选择器基础选择器层级选择器筛选选择器表单选择器子元素选择器隐式迭代jQuery里... 查看详情

史上最全!56个javascript的「手写」知识点,扫盲啦!

...复加群,自助秒进前端群今天就带着大家来复习一下JavaScript的56个「手写」知识点哦~~~大厂手写题1、实现原生AJAX封装const ajax =   get(url, fn)     const xhr = new XMLHttpRequest()    xhr.open('GET',  查看详情

nginx面试题(史上最全+持续更新)(代码片段)

尼恩面试宝典专题39:Nginx面试题(史上最全、持续更新)本文版本说明:V27《尼恩面试宝典》升级规划为:后续基本上,每一个月,都会发布一次,最新版本,可以联系构师尼恩获取,发送... 查看详情

通过事件总线eventbus/asynceventbus进行java模块解耦(史上最全)(代码片段)

事件总线在进行JAVA模块解耦,价值巨大实际开发中,常常通过事件总线EventBus/AsyncEventBus进行JAVA模块解耦,比如,在顶级开源组件hotkey的源码中,就多次用到EventBus/AsyncEventBus进行JAVA模块解耦所以,专门写... 查看详情

bytebuddy(史上最全)(代码片段)

ByteBuddy(史上最全)文章很长,建议收藏起来慢慢读!总目录博客园版为大家准备了更多的好文章!!!!推荐:尼恩Java面试宝典(持续更新+史上最全+面试必备)具体详情,... 查看详情

bytebuddy(史上最全)(代码片段)

ByteBuddy(史上最全)文章很长,建议收藏起来慢慢读!总目录博客园版为大家准备了更多的好文章!!!!推荐:尼恩Java面试宝典(持续更新+史上最全+面试必备)具体详情,... 查看详情

老林微课堂史上最全文案写作技巧(很干货(代码片段)

人不可能存在孤岛化生存,总要依赖社会群体。社区也不可能孤立和依赖传播。社区撰稿人,是传播社区的概念,社区内容输出,一个伟大的方式,以增强社区粘性。每个企业社群人,都必须学会写一些文案。那么,到底应该怎... 查看详情