索鸟网

  1. 首页
  2. 类型检查

类型检查


js 类型检查

几种常用类型检查

typeof 与 instanceof

typeof

用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果:
number,boolean,string,function(函数,正则表达式),object(NULL,数组,对象),undefined。如:console.log(typeof (123));//返回"number" console.log(typeof ("123"));//返回"string"

instanceof

使用typeof 在检查null,数组,对象时都会返回object ,在判断它们时,可以使用另一个操作符

`var a = new Array(); console.log(a instanceof Array) // 返回true`。 
`console.log(a instanceof Object) // 返回`  Array 是object 的子类。也会返回true.
*但是这个操作符的问题在于它假定只存在一个全局的执行环境,存在多个框架的情景下,会存在两个不同的数组构造函数,这里就引入了另一个方法来判断数组*

isArray()

ECMAScript5 新增的Array.isArray() 方法,无论执行环境,只有一个目的,判断是不是数组

Object.prototype.toString.call()

原生的toString() 方法,都会返回一个[object NativeConstructorName] 格式的字符串。

    var a = new Array()
    Object.prototype.toString.call(a) == "[object Array]"`
    使用这种方法不仅可以判断数组,还可以判断其他类型。
   Object.prototype.toString.call(value) =="[object Function]"
    {}.prototype.toString.call(value) =="[object JSON]" //这种方法也可以 检查原生的JSON对象
javascript

来源地址:https://segmentfault.com/a/1190000010630169 版权归作者所有!

相关教程

  • 编译期类型检查 in ClojureScript

    前言  话说"动态类型一时爽,代码重构火葬场",虽然有很多不同的意见(请参考),但我们看到势头强劲的TypeScript和Flow.js,也能感知到静态类型在某程度上能帮助我们写出更健壮的代码(当然要基于充分的单元测试上啦)。 ClojureScript与JavaScript一样采取动态类型,但由于需要通过Google Closure Compiler编
  • Flow - JS静态类型检查工具

    本章的目标是提供一些Flow工具的介绍与使用建议。Flow本质上也只是个检查工具,它并不会自动修正代码中的错误,也不会强制说你没按照它的警告消息修正,就不会让你运行程序。当然,并没有要求什么时候一定要用这类的工具,只是这种作法可以让你的代码更具强健性与提高阅读性,也可以直接避去很多不必要的数据类型使用上的问题,这种开发方式目前在许多框架与函数库项目,或是以JavaScr
  • JavaScript 需要检查变量类型吗

    javascript作为一门动态类型语言,具有很高的动态灵活性,当定义函数时,传入的参数可以是任意类型。但我们在实际编写函数逻辑时默认是对参数有一定要求的。这也容易导致预期参数与实际参数不符的情况,从而导致bug的出现。本文在这个层面探讨javascript检查参数的必要性。 为什么要进行类型检查? 从两点常见的场景来看这个问题: 程序中期望得到的值与实
  • vue2.0项目配置flow类型检查

    在vue2.0的项目中加入flow类型检查。当前项目是用js写的,当项目越来越大,由于js弱类型的特性,相比ts(typescript)这种强类型的语言而言,后期维护会越来越困难。为了解决这个问题,决定使用flow 加入类型检查。 一、flow了解 flow是fackbook公布的javascript静态类型检查器。 可以检查js中一些bug,eg:自动
  • react源码解析004 - 关于类型检查工具flow

    Flow 简介 flow是facebook推出的js类型检查工具。js是一门弱类型语言,没有从语言层面去保证变量类型不匹配的基本错误。flow使得咱们可以指定变量的类型,避免此类错误的发生。 // @flow function square(n: number): number { return n * n; } square("2", "2");
  • 检查网站是否宕机

    function Visit($url){ $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";$ch=curl_init(); curl_setopt ($ch, CURLOPT_URL,$url ); curl_setopt($ch, CURLOPT_USER
  • 拼写检查教程

    作者:Arthur Knopper,原文链接,原文日期:2015-12-22译者:钟颖Cyan;校对:Cwift;定稿:CMB 译者注:由于原文日期较早,文章代码已更新为新版本。 UITextChecker 对象可以用来对一个字符串进行拼写检查,在这篇教程里面我们将在一个 Table View 里面展示一些单词。当单词被选中的时候,会被进行拼写检查,拼写
  • 静态代码检查工具 cppcheck

    CppCheck是一个C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误。所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健壮,是否有隐藏的问题。 比如无意间写了这样的代码: int n = 10; char* buffer = new cha