资讯专栏INFORMATION COLUMN

小tips:JS中typeof与instanceof用法

王岩威 / 3106人阅读

摘要:介绍用以获取一个变量或者表达式的类型,一般只能返回如下几个结果函数数组,对象。实际应用有的页面我们不定义但有的页面定义了,就可以需要这样的判断方法,没有定义的就不执行。

介绍 typeof

typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果:

number

boolean

string

function(函数)

object(NULL,数组,对象)

undefined。

例子:

function curFun(){};
var numberType = 123;
var stringType = "123";
var booleanType = false;
var obj = {};
var nullType = null;
var arrayType = [];
var unden;

console.log(typeof curFun); //function

console.log(typeof numberType);//number
console.log(typeof stringType);//string
console.log(typeof booleanType); //boolean

console.log(typeof obj); //object
console.log(typeof nullType); //object
console.log(typeof arrayType); //object

console.log(typeof unden); //undefined

我们可以使用typeof来获取一个变量是否存在,如if(typeof a!="undefined"){},而不要去使用if(a)因为如果a不存在(未声明)则会出错,

正因为typeof遇到null,数组,对象时都会返回object类型,所以当我们要判断一个对象是否是数组时或者判断某个变量是否是某个对象的实例则要选择使用另一个关键语法instanceof

instanceof

instanceof用于判断一个变量是否某个对象的实例

var arr = new Array();
console.log(arr instanceof Array); //true
console.log(arr instanceof Object) //true,因为Array是object的子类
function test(){};
var testInstance = new test();
console.log(testInstance instanceof test); //true
js判断变量是否未定义的代码

一般如果变量通过var声明,但是并未初始化的时候,变量的值为undefined,而未定义的变量则需要通过 "typeof 变量"的形式来判断,否则会发生错误。
实际应用:
variable有的页面我们不定义,但有的页面定义了,就可以需要这样的判断方法,没有定义的就不执行。

if("undefined" != typeof variable){ 
    if(variable=="abc"){ 
        console.log("成功"); 
    } 
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89778.html

相关文章

  • tipsJS之浅拷贝深拷贝

    摘要:浅拷贝深拷贝浅拷贝的问题如果父对象的属性等于数组或另一个对象,那么实际上,子对象获得的只是一个内存地址,而不是真正拷贝,因此存在父对象被篡改的可能。 浅拷贝: function extendCopy(p) {  var c = {};  for (var i in p) {    c[i] = p[i];  }  return c; } 深拷贝: function deepCopy(p...

    Soarkey 评论0 收藏0
  • JavaScript - 变量、值、类型

    摘要:一返回值共有种二变量声明方法声明一个变量,可以将其初始化为一个值声明一个块级作用域变量,可以将其初始化一个值声明一个只读的常量使用的注意事项不支持块级作用域存在变量提升举例由于变量声明提升,这段代码相当于使用的注意事项块级作用域 一、type of 返回值共有7种:undefined, object, boolean, number, string, symbol, function ...

    ziwenxie 评论0 收藏0
  • 读书笔记(02) - 可维护性 - JavaScript高级程序设计

    摘要:解耦优势代码复用,单元测试。常用比较误区可同时判断,可用来判断对象属性是否存在。使用作判断无法进行充分的类型检查。文件中应用常量参考文档高级程序设计作者以乐之名本文原创,有不当的地方欢迎指出。 showImg(https://segmentfault.com/img/bVburXw?w=500&h=400); 编写可维护性代码 可维护的代码遵循原则: 可理解性 (方便他人理解) 直观...

    k00baa 评论0 收藏0
  • js知识点

    摘要:如果左侧的对象是右侧类的实例,则返回对象抛出异常。其他情况下,它将使用一个预定于的默认字符串作为该属性的值。当不使用操作符,直接将构造函数像一个函数一样调用时,它的行为和带操作符调用时一样。 1、数据类型 有七个原始数据类型:字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Object、Symbol。 注1:Objec...

    褰辩话 评论0 收藏0
  • 精读《Typescript2.0 - 2.9》

    摘要:比如或者都会导致函数返回值类型时。和特性一样,等于是函数返回值中的或。注意对比下面的写法对于,它的返回值是可迭代的对象,并且每个类型都是或者。首先是不支持方法重载的,是支持的,而类型系统一定程度在对标,当然要支持这个功能。 1 引言 精读原文是 typescript 2.0-2.9 的文档: 2.0-2.8,2.9 草案. 我发现,许多写了一年以上 Typescript 开发者,对 T...

    william 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<