javascript安全类型检测(判断是否是原生对象)

如何实现VMware虚拟机上的ubuntu与windows主机共享文件夹 windows主机部分   在硬盘上任意位置新建文件夹,此处命名为Share,实际上随意。 接下来右键属性,操作如下系列图所示: 在硬盘上任意位置新建文件夹,此处命名为Share,实际上随意。 成功修改后,显示如下界面: VMware部分 ubuntu在关机状态下,点击“编辑虚拟机设置” 接下来,开启ubuntu系统,在终端输入: ·· vmware-hgfsclient ·· 将会显示如下画面,但是此时你可能找不到 /mnt/hgfs 这个路径,如果找不到该路径,则需要在虚拟 阅读详情

typeof的小”bug”;

提到类型检测大家首先应该会想到typeof 操作符,现在复习一下她的用法,对于一个值使用typeof会得到以下结果:
“undefined”,”boolean”,”string”,”number”,”object”,”function”;
但是,有个bug是,当值为正则表达式的时候,结果为”function”;


instanceof的弊端:

value instanceof Array
以上表达式要为true的条件是,value必须是一个数组,并且还要和Array在同一个全局作用域;

利用Object.prototype.toString();

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString 中对toString方法的解释:

Every object has a toString() method that is automatically called when the object is to be represented as a text value or when an object is referred to in a manner in which a string is expected. By default, the toString() method is inherited by every object descended from Object. If this method is not overridden in a custom object, toString() returns “[object type]”, where type is the object type. The following code illustrates this

意思是任何值在调用原声Object的toString方法,多会返回[object type]”

var o = new Object();
o.toString(); // returns [object Object]

举个例子:

var a = [1,3];
var type = Object.prototype.toString.call(a);
console.log(type);//[object Array] 
console.log(a.toString());//'4 1,3';

上述代码第一次调用的是原生toString方法,而第二次调用的是Array的toString方法;
所以借助以上原理,我们可以设计出判断是否是原声函数、原声正则表达式等方法:

function isFunction(value){
   return Object.prototype.toString.call(value) == '[Object Function]';
}
function isRegExp(value){
   return Object.prototype.toString.call(value) == '[Object RegExp]';
}
function isJSON(value){//判断是否是原生JSON对象
   return Object.prototype.toString.call(value) == '[Object JSON]';
}
VASP吸附计算1:CO在Pt(111)面的吸附|Materials Studio建模 介绍用VASP计算CO-Pt体系电荷密度的流程。 阅读详情

相关推荐

ILI9488 TFT屏驱动与触摸协同开发指南

TFT-LCD显示模块是嵌入式人机交互系统的核心外设,其工作原理依赖于专用显示控制器(如ILI9488)对GRAM显存的精确读写,并通过SPI等串行总线接收指令与图像数据。理解RGB接口时序、寄存器初始化流程及DC/CS信号控制逻辑,是实现稳定显示的基础技术前提;而四线电阻式触摸功能则需配合XPT2046类ADC控制器,通过独立SPI或模拟时序完成坐标采集。该方案兼顾低功耗、高集成与工程可移植性,广泛应用于工业HMI、仪器仪表及STM32F407等MCU平台的教学与产品开发。本文围绕3.5英寸320×480

weixin_33814090的博客 149

关于java 注解中元注解Inherited的使用详解

关于java中元注解Inherited 的使用说明 首先解释下元注解,就是用来中声明注解类型时需要使用到的注解。 Inherited作用是,使用此注解声明出来的自定义注解,在使用此自定义注解时,如果注解在类上面时,子类会自动继承此注解,否则的话,子类不会继承此注解。这里一定要记住,使用Inherited声明出来的注解,只有在类上使用时才会有效,对方法,属性等其他无效。 下面看

awhip9的博客 474

R语言的下载、安装及环境配置(Rstudio&VSCode)

R for Windows是一个免费的用于统计计算和统计制图的优秀工具,是R语言开发工具。它拥有数据存储和处理系统、数组运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具、优秀的统计制图等功能。提供的图形界面,可以在其中访问控制台、创建脚本或安装其他软件包。

zegeai的博客 2万+

java泛型类型_具有Java泛型的自类型

java泛型类型In some situations, particularly when implementing the builder pattern or creating other fluent APIs, methods return this. The method’s return type is likely to be the same as the class in whi...

culi3182的博客 790

深信服上网行为管理设备登录方法、恢复出厂、恢复控制台密码

1.初识设备 1.1 设备外观 1.2 软件版本 2.如何登录设备 首次拿到AC/SG设备时,可以通过以下方法登录设备控制台 SANGFOR AC/SG设备,各网口默认的出厂IP为: eth0(LAN):10.251.251.251/24 , eth1(DMZ)10.252.252.252/24 1、使用一根交叉线连接设备和电脑 (1) 如果电脑连接的是设备的eth0口,需先在电脑上配...

✍千里之行,始于足下 ^,^ 5万+

Word2vec核心模型精讲:CBOW与Skip-gram

Word2vec是Google提出的词向量模型,通过CBOW和Skip-gram两种神经网络架构将词汇映射到低维向量空间。CBOW通过上下文预测中心词,训练速度快但高频词表现更好;Skip-gram则相反,通过中心词预测上下文,适合处理生僻词。为解决softmax计算效率问题,Word2vec引入基于哈夫曼树的Hierarchical Softmax优化技术,将复杂度从O(V)降至O(logV)。文章详细解析了两种模型的原理差异,并演示了哈夫曼树的构造过程及其在词向量训练中的关键作用,这种结合词频的优

Trisyp的博客 530

Springboot常用注解之@Inherited和@interface

1.@Inherited:允许子类继承父类的注解,仅限于类注解有用,对于方法和属性无效。 测试元注解 1.1 包含@Inherited注解 @Documented @Retention(RetentionPolicy.RUNTIME) @Inherited public @interface InheritedTrue { String value(); } ...

ccr1001ccr1001的博客 3340

W5500以太网&PoE扩展模块原理图设计,已量产

本文将以 W5500 以太网 & PoE 扩展板为对象,从嵌入式硬件设计的视角,深度拆解其电路架构、核心器件选型、关键功能实现,以及这款板子解决行业痛点的设计思路。

不脱发的程序猿 945

关于使用内部类作为监听器出现的问题The type MainActivity.ButtonListener must implement the inherited abstract method D

这是源代码:package com.example.test44; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.content.Di...

ADNAP7的博客 1万+

文章ACCEPT之后填写内容教程-Springer-Verlag即施普林格

1. 确认corresponding author通讯作者机构是否正确(最好细分到系,如搜不到系只填大学也可)这些信息因为在投稿的时候都填过,所以一般都没问题,可确认并继续。2. Co-Author: 这篇文章有没有其他作者,如果有就选yes,并确认投稿时所填的作者姓名和机构是否正确。这个也是如果前期都填对了就不用修改。3. Research funders: 问文章的研究有没有资助,没有就选no,有就选yes,并填写机构名称和grant/contact numbers。

ZhangJiqun&191cm&85kg 4785

基于YOLO26深度学习框架的人脸识别门禁系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的人脸识别门禁系统实现方法。系统采用YOLO26目标检测算法,通过CSPDarknet53主干网络、特征金字塔结构和注意力机制实现高效人脸检测。研究内容包括数据预处理、模型训练优化和身份验证等关键技术,使用迁移学习策略和CIoU损失函数提升检测精度。该系统可应用于智能安防场景,具有实时性强、识别准确的特点,为门禁管理提供了智能化解决方案。

一键难忘的博客 766

JavaScript——判断js数据类型(类型检测)

1、typeof运算符 typeof算是最常见的了,使用它会返回一个字符串,适合函数对象和基本类型(js中的基本类型:number、string、boolean、null、undefined、object[对象])的判断。 console.log("测试number:"+typeof 1); console.log("测试string:"+typeof "str"); console.l

yCharlee的博客 4万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JavaScript 技术篇-js检测原生对象类型实例演示,js的3种对象类型

JavaScript 的对象类型共有 3 种:Object、Date、Array。 myArray.constructor 可以返回对象的内部构造函数,除了 Date 和 Array 对象外,其余的都是 Object 对象,但是 constructor 是可以被改变,所有可能会判断有误。 Object.prototype.toString.call(myArray) 返回的是原生对象类型,这个是从对象创建时就固定好的,后面不会被改变,所以我们使用它来进行判断。

小蓝枣的博客 1127

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JavaScript专题(六)类型检测

JavaScript专题之如何判断数据类型 目录 一、typeof 二、instanceof 三、constructor 四、stringTag是什么? 五、实现几个数据检测的方法 写在最后 前言 在《JavaScript的数据类型》中我们也提到过简单的类型检测问题。 作为前端的同学,我们应该都知道可以使用typeof和instanceof在运行时判断JavaScript数据的类型,那么他们都是怎么判断的呢?一千个人会不会写出来一千个判断方法? 本文会从通用的typeof、到专攻对象的instance.

余光的博客 4万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【JavaScript】JS数据类型检测的方法详解

JavaScript数据类型检测方法全面解析 摘要:本文系统介绍了JavaScript中的数据类型检测方法,包括基础类型与引用类型的存储差异,以及四种核心检测方法:typeof操作符(适合基础类型但存在null误判)、instanceof运算符(专用于引用类型检测)、constructor属性(易受重写影响)和Object.prototype.toString.call()(万能精准检测法)。通过对比表格分析各方法的优缺点,并提供了表单验证、API数据处理等实战案例。

1259

js安全的类型检测toString()

js内置的类型检测机制并不是完全可靠的 例如typeof操作符,由于它有一些无法预知的行为,经常会导致检测数据类型时得到不靠谱的结果. Safari(直至第4版)在对正则表达式使用typeof操作符时会返回undefined,因此很难确定某个值是否是函数 再比如,instanceof操作符在存在多个全局作用域的情况下(比如一个页面包含多个frame),也是问题多多. 例如下面这样将对象标识为数组 var isArray = value instanceof Array 上面这段代码要返回true必须,va

weixin_44283589的博客 660

【javascript】判断浏览器类型,是否是手机浏览器

navigator.userAgent 是 JavaScript 中 navigator 对象的一个只读属性,它返回一个字符串,描述了当前浏览器的用户代理标识(User-Agent string)。navigator.userAgent 属性中的关键字。手机和平板设备的 userAgent 字符串通常会包含 "Mobile" 或 "Android"、"iPhone"、"iPad" 等关键词。例如,一些桌面浏览器提供了模拟移动设备 userAgent 的功能,而某些移动浏览器则允许用户切换到桌面模式。

weixin_47351913的博客 2137

js 类型判断

类型判断 typeof(type); 原生 'undefined' *'boolean' 'string' 'number' 'object' 'function' 自定义类型判断函数 function typeOf(obj) { var typeList = { '[object Boolean]' : 'boolean', ...

zshsats博客 1949

【JavaScript】js中判断变量类型的几种方式

在JavaScript中有好几种判断变量类型的方式,此篇主要探讨判断变量类型的几种方式和特点。typeof 运算符返回一个字符串,表示操作数的类型。 参数:特点:适合判断常见的基本类型,引用类型需要做兼容处理才能准确区分。 instanceof instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 可以理解为:某个实例对象(变量)来自于某个构造函数,则返回true,否则返回false。 参数:特点:如果变量值是用new创建的,也可以使用它判断类型。 Ob

qq_2511276124的博客 2628

JavaScript之变量类型判断

我们平时用的最多的就是用typeof检测变量类型了。这次,我们也使用typeof检测变量的类型:从输出的结果来看,arr, json, nul, date, reg, error 全部被检测为object类型,其他的变量能够被正确检测出来。当需要变量是否是numberstringbooleanfunctionundefined, json类型时,可以使用typeof进行判断。其他变量是判断不出类型的,包括null。还有,typeof是区分不出array和json类型的。

2401_89734062的博客 688

js 面试 1判断变量是否是数组 2 检测数据类型方法

优点:可以正确判断对象类型(引用类型),内部运行机制是原型链上能否找到这个类型的原型。4) Object.prototype.toString.call() 检测数据类型。优点:基本能检测所有类型(除了null和undefined)和instanceof很相似,也能检测出是基本类型,数组,正则。但constructor检测正则 === Object 检测不出。缺点:不能正常判断基本类型 并且 不能跨iframe。缺点:只能检测基本类型(除null外)优点:能检测出所有类型。

m0_65730686的博客 640

前端面试之JavaScript -- JS中如何检测一个变量是什么类型

前端面试之JavaScript -- JS中如何检测一个变量是什么类型JS标准文档定义的类型答案在这里1、不完全准确的检测:typeof----typeof能检测出的类型2、不完全准确的检测:instanceof插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新...

Adia_Sue的博客 2967

【javascript】判断对象类型

你可以通过Array.isArray(myObj) 或者Object.prototype.toString.call(myObj) === “[object Array]” 来安全的检测传过来的对象是否是一个数组。注意:在改变对象 obj 的原型链的情况下,constructor属性有可能被修改的,Foo.prototype 属性的值也有可能改变,这些都会导致检测出的结果不正确。在JavaScript中,每个对象都有一个constructor属性,它引用了实例化该对象的构造函数,常用于判断未知对象的类型。

qq_45406325的博客 6924

JavaScript 类型判断 判断Null和Undefined

js类型判断 判断Null和Undefined javaScript中判断数据类型的方法主要有三种: ​ **typeof:**原理是通过根据变量的机器码来判断 ​ instanceof:根据 构造函数的 prototype 属性是否出现在某个实例对象的原型链上 typeof 序号 类型 结果 1 Undefined “undefined” 2 Null “object” 3 Boolean “boolean” 4 Number “number” 5 BigInt(ECMA

XiaoYi 4963

js中判断字符的类型

一.判断是否为数组类型 var a=[0]; document.write(isArray(a),'<br/>'); function isArray(obj){ return (typeof obj=='object')&&obj.constructor==Array; } 二.判断是否为字符串类型 document.write(isString('tes...

肆意飞扬 4537

JS——判断变量类型方法汇总

判断变量类型一、使用typeof判断变量类型二、使用instanceof判断变量的类型三、使用constructor判断变量的类型四、使用Object.prototype.toString.call判断变量的类型五、使用jquery中$.type判断变量的类型。六、总结 在JS中,有 5 种基本数据类型和 1 种复杂数据类型. 基本数据类型有:Undefined, Null, Boolean, Number和String; 复杂数据类型是Object,Object中还细分了很多具体的类型,比如:Array,

weixin_52148548的博客 3629
上一篇: javascript数组查重
下一篇: 函数柯里化的几个例子
景洪在编程
博客等级 码龄9年 13粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值