instanceof

[HTML5] DOM Nodes Explained

人盡茶涼 提交于 2020-03-17 04:15:26
import './assets/css/style.css'; const app = document.getElementById('app'); app.innerHTML = '<h1>JavaScript DOM</h1>'; // <html> console.log(document.documentElement); console.dir(document.documentElement); // <head> console.dir(document.head); // <body> console.dir(document.body); // retrieve the constructor name console.log(document.body.constructor.name); // looking at the prototype chain console.log(document.body instanceof HTMLBodyElement); console.log(document.body instanceof HTMLElement); console.log(document.body instanceof Element); console.log(document.body instanceof Node); console

Java运算符

我与影子孤独终老i 提交于 2020-03-16 18:34:03
Java运算符 一、运算符分类 运算符优先级 算术运算符 一元 ++,-- 二元 +,-,*,/,% 赋值运算符 = 扩展运算符 +=,-=,*=,/= 关系运算符 >,<,==,!=,>=,<=,instanceof 逻辑运算符 &&,||,!,^ 位运算符 &,|,~,^,>>,<<,>>> 条件运算符 ?: 字符串连接符 + 二、算术运算符 (1)一元运算符 a++:先使用变量a后再自增。 ++a:变量a先自增后再使用。 (2)二元运算符 1. 整数运算 操作数只要有Long类型,结果为Long类型,否则结果为int类型。 2. 浮点运算 操作数只要有double类型,结果为double类型,否则为float类型。 3. 取模运算 操作数可为浮点型,但一般为整型。 余数的符号与第一操作数相同。 三、赋值运算符 四、关系运算符 这里少见的就是instanceof运算符:A instanceof B,这是判断对象A是否属于类B,返回值为boolean类型。 五、逻辑运算符 需要注意的是:逻辑运算符的两个操作数必须为boolean类型。 逻辑与 & 两个操作数都为true才返回true;否则为false 逻辑或 | 两个操作数都为false才返回false;否则为true 逻辑非 ! 取反:!true==false, !false==true 逻辑异或 ^ 两个操作数不同为true

js中对类和对象的理解

一笑奈何 提交于 2020-03-16 05:46:48
类 : 对一群具有相同特征的对象的集合的描述; 对象: 真实存在的对象个体; **面向对象,而不是面向类。 1.一切皆对象,继承靠原型链,多态靠弱类型,封装……虽然可以靠闭包,但我个人更推崇和python一样的,下划线代表私有的风格 2.比如人类,指的是一个范围; 对象:比如某个人,指的是这个范围中具体的对象 3.Javascript中的function作为构造函数时,就是一个类,搭配上new操作符,可以返回一个对象。 当然,要生成一个对象,也可以用字面量的形式,例如var obj = {x: 1, y: function(){} }; 类可以理解为一个模板,而对象就是根据这个模板造出来的具体实例。 instanceof 判断一个对象是不是属于一个类 对象 instanceof 构造函数 自己的父级 父级 。。。。 constructor 判断直接的父级 1.Object instanceof Function true Object instanceof Object true Function instanceof Function true Function instanceof Object true 2. var arr = new Array(); var date = new Date(); arr instanceof Array true date

instanceof 与 isArray

折月煮酒 提交于 2020-03-12 12:53:57
当检测Array实例时, Array.isArray 优于 instanceof ,因为 Array.isArray 可以检测出 iframes var iframe = document.createElement('iframe'); document.body.appendChild(iframe); xArray = window.frames[window.frames.length-1].Array; var arr = new xArray(1,2,3); // [1,2,3] // Correctly checking for Array Array.isArray(arr); // true Object.prototype.toString.call(arr); // true // Considered harmful, because doesn't work though iframes arr instanceof Array; // false Array.isArray() 与 Object.prototype.toString.call() Array.isArray() 是ES5新增的方法,当不存在 Array.isArray() ,可以用 Object.prototype.toString.call() 实现。 if (!Array

代码的可维护性

╄→гoц情女王★ 提交于 2020-03-12 03:52:34
避免使用全局量 包括变量和函数,最好对齐进行封装; 避免与null进行比较 如果看到了与null比较的代码,尝试使用以下技术替换 function sortArry ( values ) { if ( values != null ) { //不推荐 values . sort ( ) } } function sortArry ( values ) { if ( values instanceof Array ) { //推荐 values . sort ( ) } } a、如果值应为一个引用类型,使用 instanceof 操作符检查其构造函数; b、如果值应为一个基本类型,使用 typeof 检查其类型; c、如果是希望对象包含某个特定的方法名,则使用 typeof 操作符确保指定名字的方法存在于对象上 使用常量 将固定不变的值封装成常量 var constants = { INVALID_MSG : "SUCCESS!" , INVALID_URL : "/detail/info" } 来源: CSDN 作者: 小宇宙chris_310 链接: https://blog.csdn.net/qq_38796823/article/details/104805670

MyBatis源码解析 - 反射模块

徘徊边缘 提交于 2020-03-12 02:42:01
MyBatis源码解析 - 反射模块 1. 前言 ​ 该模块位于 org.apache.ibatis.reflection 包中,MyBatis在进行参数处理、结果映射等操作时,会涉及大量的反射操作。Java 中的反射虽然功能强大,但是代码编写起来比较复杂且容易出错,为了简化反射操作的相关代码,MyBatis提供了专门的反射模块,它对常见的反射操作做了进一步封装,提供了更加简洁方便的反射API。本节就来为读者介绍该模块中核心代码的实现。 2. Reflector Reflector 是MyBaits中反射模块的基础,Reflector中缓存了很多反射操作需要使用的元数据。各个字段如下: private final Class<?> type; //对应的class类型 private final String[] readablePropertyNames; //可读属性的名称集合,可读属性就是存在相应getter方法的属性 private final String[] writablePropertyNames; //可写属性的名称集合,可写属性就是存在相应setter方法的属性 //记录了属性相应的setter方法,key是属性名称,value 是Invoker对象,它是对setter方法对应 // Method 对象的封装 private final Map<String,

Spring Aware接口执行时机源码深度解读

我只是一个虾纸丫 提交于 2020-03-12 02:17:17
Spring Aware接口执行时机源码深度解读 Spring中有这样一种标记接口的存在Aware,只要是spring管理的bean实现了Aware接口,那么spring就会在bean创建的某个时机将相应的资源注入到该spring bean中,比如ApplicationContextAware, 会将spring 应用上下文ApplicationContext自动注入到bean中。 //Spring Aware标记接口 public interface Aware { } Spring内建的Aware接口 Spring 内建的Aware大概分为以下几种 Spring core 和 context的内建Aware接口 ApplicationEventPublisherAware MessageSourceAware ResourceLoaderAware BeanFactoryAware EnvironmentAware EmbeddedValueResolverAware ImportAware LoadTimeWeaverAware BeanClassLoaderAware BeanNameAware ApplicationContextAware Spring web内建的Aware接口 ServletContextAware ServletConfigAware

原型与原型链

时间秒杀一切 提交于 2020-03-11 16:30:21
原型(prototype) <!-- 1. 函数的prototype属性(图) * 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象) * 原型对象中有一个属性constructor, 它指向函数对象 2. 给原型对象添加属性(一般都是方法) * 作用: 函数的所有实例对象自动拥有原型中的属性(方法) --> <script type="text/javascript"> // 每个函数都有一个prototype属性, 它默认指向一个对象(即称为: 原型对象) console.log(Date.prototype, typeof Date.prototype) function fn() { } console.log(fn.prototype, typeof fn.prototype) // 原型对象中有一个属性constructor, 它指向函数对象 console.log(Date.prototype.constructor===Date) console.log(fn.prototype.constructor===fn) // 2. 给原型对象添加属性(一般都是方法) function F() { } F.prototype.age = 12 //添加属性 F.prototype.setAge = function (age)

web(原型链与继承)

拜拜、爱过 提交于 2020-03-11 10:08:31
一、 原型链 _proto_ : 原型链,对象的属性,指向生成该对象的构造函数的原型对象 prototype: 原型对象,函数(构造函数)特有的属性,存储共享的属性和方法 // 所有的javascript对象都会继承一个prototype原型对象 继承原型对象上的属性和方法 // Date 对象 从Date.prototype 原型对象上继承属性和方法 // Array 对象 从Array.prototype 原型对象上继承属性和方法 以js数组对象Array为例: var arr = new Array ( ) ; console . log ( typeof Array ) ; //输出function,即Array本质是一个函数,js中函数也是对象 console . log ( arr . __proto__ ) ; //输出的是Array(arr的上一层,即创建arr的构造函数)的原型对象 console . log ( arr . __proto__ . __proto__ ) ; //输出的是Object(即Array的上一层)的原型对象 console . log ( arr . __proto__ . __proto__ . __proto__ ) ; //输出为null Object为最高层 没有继承任何对象 原型链与圆形函数的关系 ,通过下面的例子作以说明 /

instanceof、isinstance、isAssignableFrom的区别

☆樱花仙子☆ 提交于 2020-03-11 06:06:33
instanceof运算符 只被用于对象引用变量,检查左边的被测试对象 是不是 右边类或接口的 实例化。如果被测对象是null值,则测试结果总是false。 说明:自身实例或子类实例 instanceof 自身类 返回true 例: String s=new String("javaisland"); System.out.println(s instanceof String); //true Class类的isInstance(Object obj)方法,obj是被测试的对象,如果obj是调用这个方法的class或接口 的实例,则返回true。这个方法是instanceof运算符的动态等价。 说明:自身类.class.isInstance(自身实例或子类实例) 返回true 例:String s=new String("javaisland"); System.out.println(String.class.isInstance(s)); //true Class类的isAssignableFrom(Class cls)方法,如果调用这个方法的class或接口 与 参数cls表示的类或接口相同,或者是参数cls表示的类或接口的父类,则返回true。 说明:自身类.class.isAssignableFrom(自身类或子类.class) 返回true 例:System.out