instanceof

js 判断数据类型

ε祈祈猫儿з 提交于 2020-01-10 11:30:19
首先来提问一个: typeof 是否能正确判断类型? 答案是:不可以,因为由于历史原因,在判断原始类型时, typeof null 会等于 object 。而且对于对象来说,除了函数,都会转换成 object 。例子如下: typeof 1 // 'number' typeof "1" // 'string' typeof null // typeof [] // 'object' typeof {} // 'object' typeof window.alert // 'function' 再来提问一个, instanceof 是否能正确判断类型? 答案是:还是不可以,虽然 instanceof 是通过原型链来判断的,但是对于对象来说, Array 也会被转换成 Object ,而且也不能区分基本类型 string 和 boolean 。例如: function Func() {} const func = new Func() console.log(func instanceof Func) // true const obj = {} const arr = [] obj instanceof Object // true arr instanceof Object // true arr instanceof Array // true const str = "abc"

How can I reduce the Cyclomatic Complexity of this?

五迷三道 提交于 2020-01-10 01:04:14
问题 I have a method that receives an Object and does something based on what type of object it detects: void receive(Object object) { if (object instanceof ObjectTypeA) { doSomethingA(); } else { if (object instanceof ObjectTypeB) { doSomethingB(); } else { if (object instanceof ObjectTypeC) { doSomethingC(); } else { if (object instanceof ObjectTypeD) { doSomethingD(); } else { // etc... } } } } } How can I reduce the Cyclomatic Complexity? I searched around but couldn't find anything too useful

Java的运算符

大城市里の小女人 提交于 2020-01-09 00:01:21
1.算数运算符   + 加  - 减  * 乘  / 除   % 取模(取余)  ++ 自增  -- 自减 整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点类型的数据。   自增和自减运算,在单独使用,效果是一样的。   在参与其它运算时:    ++ 在前 当前数先 +1 ,在进行其它运算。    ++ 在后 先进行其它运算,当前数在 +1。    -- 在前 当前数先 -1 ,在进行其它运算。    -- 在后 先进行其它运算,当前数在 -1。   常量不可以是用 自增和自减运算。 2.赋值运算符   基本的赋值运算符:=   扩展的赋值运算符:+= , -= , *= , /= , %= 扩展的赋值运算符,隐含了一个强制类型转换 3.比较运算符   == , != , < , > , <= , >= , instanceof 不管操作简单还是复杂,结果肯定是boolean类型。   instanceof 判断是否是类的对象 Eg : "hello" instanceof String; true 4.逻辑运算符   & (AND 与)  | (OR 或)  ^(XOR 异或)    !(Not 非)   &&(短路与)  ||(短路或) 用于连接结果为布尔型的表达式。   ^(异或) 逻辑运算符 两边相同为 false 不同为true;   单 &

王道JAVA随堂笔记

ⅰ亾dé卋堺 提交于 2020-01-08 09:59:41
DAY 9 一、多态 1.多态是什么 多态是某一个事物在不同时刻或者不同条件下表现出来的不同状态。 java语言中的多态:“同一个对象”的行为(方法),在不同的时刻或条件下,表现出不同的效果。 2.多态的发生 多态的发生条件: 继承(多态一定要继承行为) 子类,一定要覆盖父类中,要发生多态的方法(行为) 父类引用指向子类实例 3.多态 多态: 编译时多态(方法重载): 2. 运行时多态:今天所讲的多态 4.多态中成员访问的特点 成员属性和成员方法: 编译看左边 : 引用变量的类型,规定了我们通过引用变量能访问到的对象的成员 运行看右边 : 究竟实际执行的方法 多态的优缺点 优点: 解决代码冗余的问题 使我们的程序可扩展性更好 缺点: 多态不能访问子类特有的方法 (为了解决多态无法访问子类特有的方法,我们可以使用向上转型和向下转型。) 为了保证向下转型是安全的,这里我们采用 instanceof 来判断当前对象是否是当前类的对象。 instanceof语法:对象名 instanceof 类名 返回值是boolean型; **注意:**null instanceof 任意类型结果都是false 二、抽象类 1.引入 当一个方法只有方法声明的时候,也就意味着它没有具体的方法实现,——> 抽象方法 必须使用abstract关键字来定义 2. 当一个类中包含了抽象方法

带你一步步剖析Retrofit 源码解析:一款基于 OkHttp 实现的网络请求框架

寵の児 提交于 2020-01-07 23:36:20
OkHttp与Retrofit 的区别与联系是怎样的? 参考答案: OkHttp和Retrofit都是目前流行网络开源框架 封装不同: Retrofit封装了具体的请求,线程切换以及数据转换。 retrofit通过使用代理,外观,策略模式对okhttp进行了封装 OkHttp 是基于Http协议封装的一套请求客户端 职责不同: Retrofit主要负责应用层面的封装,面向开发者,方便使用,比如请求参数,响应数据的处理,错误处理等等。 OkHttp主要负责socket部分的优化与封装,比如网络访问,多路复用,buffer缓存,数据压缩等等。 ( 顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找 ) https://github.com/xiangjiana/Android-MS (VX:mm14525201314) Retrofit 可以说和 OkHttp 是亲兄弟了,它们都是由 Square 公司推出的网络请求库,并且 Retrofit 实际上是基于 OkHttp 实现的,它在 OkHttp 现有功能的基础上进行了封装,支持通过注解进行网络请求参数的配置,同时对数据返回后的解析、序列化进行了统一的包装,甚至在近期引入了对协程对支持。 今天就让我们一起来看看 Retrofit 是如何在 OkHttp 这样一个已经固定的框架的基础上,优雅的进行封装并拓展功能的。 基本使用

关于面试?

冷暖自知 提交于 2020-01-07 17:15:19
1、js的基础类型?undefined、null、number、boolean、string 引用类型 Object、array、function、data (null表示"没有对象",即该处不应该有值。undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。) 2、判断数组的方式有哪些?   2.1 PS:instanceof的实现原理(判断左边对象的原型链上是否存在右边原型) var array = []; array instanceof Array;   2.2 PS:instanceof和constructor判断的变量,必须在当前页面申明的,比如,一个页面(父页面)一样一个框架,框架中引入一个页面(子页面),在子页面中声明的array,并将其复制给父元素的一个变量,判断该变量,将返回false。 var array = []; array.constructor === Array   2.3 var array = []; array.__proto__.constructor === Array;   2.4 var array = []; Array.isArray(array);   2.5 toString(最常用)考虑Array.isArray的兼容性问题 if(!Array.isArray){ Array.isArray =

js基础

为君一笑 提交于 2020-01-07 16:05:26
1. JS的数据类型 2. JS有哪些内置对象 3. 宿主对象和原生对象的区别 4. null、undefined及未声明变量之间的区别。如何区分? 5. ==和===的区别 6. JS隐式转换及应用场景 7."Attribute"和"Property"的区别 8. NaN是什么?如何判断是否是NaN类型 9. 如何判断两个对象相等 10. 什么是'user strict',使用它有什么优缺点? 优点: 缺点: 11. call,apply和bind的作用是什么?两者区别是什么? 12. 请说明Function.prototype.bind的用法 摘自MDN: 13. 如何判断是否为空数组 14. 数组方法 数组乱序: 数组拆解: 15. push、pop、shift、unshift功能及返回值 16. .forEach和.map()循环的主要区别,使用场景举例 17. JS执行对象查找时,永远不会去查找原型的函数是哪个? 18. 如何将arguments转为数组 19. 对象的遍历方法 20. 数组的遍历方法 21. 匿名函数的典型应用场景 22. IIFE(立即执行函数)的用法 23. document的load事件和DOMContentLoaded事件之间的区别 24. 数据类型判断方式有几种 25. DOM操作(增删改查) 26. 异步加载JS 的方式有哪些 27.

JS typeof 与 instanceof

爱⌒轻易说出口 提交于 2020-01-07 15:41:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> JS中常用来判定变量类型的两个函数为 typeof 和 instanceof typeof 的结果有 undefined, number, boolean, string, function, object[ null, Array, String, Date.....] 要注意的地方是 typeof null的结果为object, null在js中是一种特殊的对象,而非等同于 undefined null 和 undefined 并不是等价的 var tmp = null; // 虽然tmp是null,但我也定义了 var undef; //声明但没定义 alert(typeof tmp); // object alert(typeof undef); // undefined 所以判断一个值是不是null的时候直接用 tmp == null即可,切勿使用typeof,null是一种特殊的对象 // 标量 // typeof 123; // number typeof 'string'; // string typeof true; // boolean // 函数 // typeof function(){}; //function // 对象 // typeof new String('string');

java poi ppt 接口的基本操作

烈酒焚心 提交于 2020-01-06 13:17:16
依赖 在 pom.xml中增加以下依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.1</version> </dependency> 注:很多博客,教我们用以下依赖,是没有XSSF相关内容的 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> version 版本 poi的版本可以在 https://mvnrepository.com/artifact/org.apache.poi/poi 进行查询。 找到想要依赖的版本 点击进入后,可以直接复制里面的依赖 初始化 import org.apache.poi.sl.usermodel.SlideShow; import org.apache.poi.sl.usermodel.SlideShowFactory; SlideShow slideShow = SlideShowFactory.create(new File("./res/1.pptx"));   如果文件不存在或文件正在使用,create 方法抛出

Use instanceof in a generic way

匆匆过客 提交于 2020-01-05 06:59:09
问题 Is there a way to use instanceof based on the passed argument of a method? Example doSomething(myClass.class); /* I would like to call this also with other classes */ public void doSomething(/*generic parameter that accepts all classes, not just myClass */) { if (myObject instanceOf /* the generic parameter */ == true) {...} } sometimes I'll call the method using myClass.class but other times I would like to call it using someOtherClass.class - I don't want to change the if condition though.