资讯专栏INFORMATION COLUMN

笔记-js判断变量类型

Carbs / 2994人阅读

摘要:平时业务代码写多了,学习又懈怠,对的基本功能都不太熟悉了,面试答不上来,哭唧唧使用判断的是基本数据类型。未定义变量使用操作符主要基于类型的判断。假设基于创建一个类个分别是。

平时业务代码写多了,学习又懈怠,对js的基本功能都不太熟悉了,面试答不上来,哭唧唧
1.使用typeof

判断的是基本数据类型。

{} object
[] object
function(){} function
"1" string
null object
undefined/未定义变量 undefined
1/NaN number
true boolean
Symbol() symbol
2.使用instanceof操作符

主要基于object类型的判断。

假设基于React.Component创建一个类

class Board extends React.Component {
    //...
    
    render() {
        console.log(this instanceof Board);// true
        console.log(this instanceof React.Component);// true  
        console.log(React.Component.prototype.isPrototypeOf(this));// true
        console.log(this instanceof Object);// true
        console.log(this instanceof Game);// false
    }
    
    //...
}

class Game extends React.Component {
    // ...
}

5个log分别是true true true true false。
基本可以看出instanceof与原型链有关,MDN上的描述是The instanceof operator tests whether the prototype property of a constructor appears anywhere in the prototype chain of an object.
是否这个构造函数的prototype属性出现在这个对象的原型链中。

如果改动了React.Component.prototype,就会出现

console.log(this instanceof React.Component); // false  

其他

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

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

相关文章

  • js笔记内容

    摘要:定义运算符用来判断一个构造函数的属性所指向的对象是否存在另外一个要检测对象的原型链上,用于引用类型。但其实,实例的来自于构造函数的。 一、关于css 样式优先级: 行内样式>id选择器样式>类选择器样式>标签选择器样式>通配符选择器的样式>继承样式>默认样式 二、关于js 关于问题:**JavaScript中的所有事物都是对象??** 从typeof和instanceo...

    n7then 评论0 收藏0
  • 《javascript高级程序设计》笔记变量变量检测

    摘要:变量的特点变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。 变量的特点 js变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说, 每个变量仅仅是一个用于保存值的占位符而已 js变量可以用来保存任何值,未经过初始化的变量,会保存一个特殊的值—undefined,如:var msg; js变量的初始化并不会为它标记类型;初始化的过程就是给变量赋一个值那...

    XiNGRZ 评论0 收藏0
  • <<编写可维护的javascript>> 笔记8(避免'空比较&#

    摘要:中常常会看到这种代码变量与的比较这种用法很有问题用来判断变量是否被赋予了一个合理的值比如不好的写法执行一些逻辑这段代码中方法显然是希望是一个数组因为我们看到的拥有和这段代码的意图非常明显如果参数不是一个数组则停止接下来的操作这种写法的问题在 js中, 常常会看到这种代码: 变量与null的比较(这种用法很有问题), 用来判断变量是否被赋予了一个合理的值. 比如: const Contr...

    young.li 评论0 收藏0
  • 2019面试笔记

    摘要:使用构造函数创建对象后,新对象与构造函数没有关系了,新对象的属性指向的是构造函数的原型对象。构造继承使用父类的构造函数来增强子类的实例,等于是在子类的构造函数内部执行。 一.js原始类型: 在js中,存在着6种原始值: * boolean * number * string * undefined * null * symbol 注意: 虽然typeof null输出的是o...

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

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

    k00baa 评论0 收藏0

发表评论

0条评论

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