javascript中in和hasOwnProperty区别】的更多相关文章

in操作符只要通过对象能访问到属性就返回true.hasOwnProperty()只在属性存在于实例中时才返回true. function Person(){ } Person.prototype.name = "Nicholas"; Person.prototype.age = 29; Person.prototype.job = "Software Engineer"; Person.prototype.sayName = function(){ alert(t…
标题:JavaScript 中 操作符"==" 和"===" 的区别 记录一些很坑的区别: 1. '' == '0' // false 0 == '' // true 0 == '0' // true false == 'false' // false false == '0' // true false == undefined // false false == null // false null == undefined // true ' \t\r\n '…
hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员. isPrototypeOf是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false. instanceof  操作检查对象中是否有名为 property 的属性.也可以检查对象的原型,判断该属性是否为原型链的一部分. Java代码 hasOwnProperty:   var obj = {a:1,b:2}…
记录学习中容易混淆的一些方法. prop in object prop一个字符串类型或者 symbol 类型的属性名或者数组索引(非symbol类型将会强制转为字符串). objectName检查它(或其原型链)是否包含具有指定名称的属性的对象. js对象中in和hasOwnProperty()的区别在于是否查找Prototype链: Object.keys()会返回一个数组,包含所有可枚举的属性,Object.getOwnPropertyNames()也会返回一个数组,包含所有的属性无论他们是…
in 运算符 判断对象是否拥有某一属性只要对象拥有该属性,就会返回true,否则false var point = { x:1, y:1 };alert( 'x' in point );  //true var arr = ['one', 'two'];alert( 'kang' in arr );  //falsealert( '1' in arr );  //truealert( 'push' in arr );  //true var fn = function(){};fn.protot…
相同点: 两个运算符均可用于比较两个值是否相等,可允许操作任意类型的操作数,如果操作数相等则返回true,否则返回false. 不同点: "==="运算符也称为严格相等运算符,它用来检测两个操作数是否严格相等.该运算符首先计算其操作数的值,然后比较这两个值,比较过程中并不会首先对操作符进行任何类型转换. "=="运算符称为相等运算符,用来检测两个操作数是否相等,这里“相等”的定义非常宽松,可以允许进行类型转换.相等运算符"=="和"==…
前言 基本上,所有JS数据类型都拥有这两个方法,null除外.它们俩解决JavaScript值运算与显示的问题,重写会加大它们调用的优化. 测试分析 先看一例:var aaa = {  i: 10,  valueOf: function() { return this.i+30; },  toString: function() { return this.valueOf()+10; } } alert(aaa > 20); // true alert(+aaa); // 40 alert(aa…
1.相同点 如果我们直接用 undefined == null  比较他们是相等的返回的将是 true. 2.区别 当我们用undefined === null 比较的时候最后返回的将是 false. A.undefined表示"缺少值",就是此处应该有一个值,但是还没有定义 (1)变量被声明了,但没有赋值时,就等于undefined. (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined. (3)对象没有赋值的属性,该属性的值为undefined. (4)函数没有…
1 三者的相似之处: (1).都是用来改变函数的this对象的指向的 (2).都是用第一个参数来做this对象的指向 (3).都可以传参数进去 那么,具体到它们有什么区别呢?请看下面的例子: 两个对象,一个动物类,一个人类,人类也是可以走的,那么我们可以让人类直接使用动物类的action方法吗?答案当然是可以的. 方法就是通过改变动物类的action方法的指向,让它的指向变为person,如下: 结果如下: 再看另外两种用法: 这是call的方法,最后一个bind是有点特殊的: 这是因为bind…
公众号原文 Javascript有5种基本类型:Boolean,Number,Null,Undefined,String:和一种复杂类型:Object(对象): undefined:只有一个值,及特殊的undefined.在使用var声明变量但未对其初始化时,这个变量的值是undefined,简言之,undefined就是表示变量申明了但未初始化时的值. 注意:尚未声明的值直接alert其值会报错而不是显示undefined:但是如果一个申明了未赋值的变量与未声明的变量所显示的typeof结果是…
1.undefined:只有一个值,及特殊的undefined.在使用var声明变量但未对其初始化时,这个变量的值是undefined,简言之,undefined就是表示变量申明了但未初始化时的值. 注意:尚未声明的值直接alert其值会报错而不是显示undefined:但是如果一个申明了未赋值的变量与未声明的变量所显示的typeof结果是一样的--->undefined <script type="text/javascript"> var str; alert(t…
1.等号 =赋值运算符,给变量赋值 var a="1"; 2.相等和不相等操作符 相等操作符由==表示,若两个操作数相等,则返回true:不相等操作符由!=表示,若两个操作数不相等,则返回true.属于不严格的相等或不等判断,因为javascript会自动转换类型再对其进行比较,即只判断值是否相等不判断类型 比较时需要遵循下列规则 1)null和undefined是相等的 2)比较相等之前,不能将null和undefined转换成其它任何值 3)如果有一个操作数是NaN,则相等操作符返…
差异: 1.占用的空间不同. 可见性占用域空间,而显示不占用. 可见性和显示可以隐藏页面,例如: 将元素显示属性设置为block将在该元素后换行. 将元素显示属性设置为inline将消除元素换行. 将element display属性设置为none可隐藏元素内容而不占用域空间. 将“元素可见性”属性设置为“隐藏”,以隐藏元素内容,但占用域中的空间. 将“元素可见性”属性设置为“可见”,以显示元素内容. 2.对正常文档流的不同响应. 如果要隐藏某个元素,但在页面上为该元素留有空间,则应使用visi…
obj.call(thisObj, arg1, arg2, ...); obj.apply(thisObj, [arg1, arg2, ...]); 两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法.或者说thisObj『继承』了obj的属性和方法. 唯一区别是apply接受的是数组参数,call接受的是连续参数. function add(j, k){ return j+k; } function sub(j, k){ return j…
.与[]都可以用于读取或修改对象属性. <script> var myData={ name:"Adam", weather:"sunny", }; </script> 句点.的语法: object.property 示例: myData.name='Joe'; 中括号[]适用于所有属性,其括号[]内为字符串或者变量或数字. 中括号[]的语法: object['property'] 示例: myData['weather']='raining…
一. typeof操作符 typeof操作符用于返回正在使用值的类型. // 使用原始值 let mNull = null; let mUndefined = undefined; let mString = 'mazey'; let mNumber = 123; let mBoolean = true; let mFunction = function () { return true; }; // 用构造函数的方式new一个实例 let oString = new String('cherr…
在 Javascript中prototype属性的详解 这篇文章中,详细介绍了构造函数的缺点以及原型(prototype),原型链(prototype chain),构造函数(constructor),instanceof运算符的一些特点.如果对prototype和构造函数不熟悉,可以前往Javascript中prototype属性的详解 和 Javascript 中构造函数与new命令的密切关系 仔细的品味品味.先来做一个简单的回顾. 首先,我们知道,构造函数是生成对象的模板,一个构造函数可以…
JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的原型链中,是则返回true,否则返回false. 格式如下: object1.isPrototypeOf(object2); object1是一个对象的实例: object2是另一个将要检查其原型链的对象. 原型链可以用来在同一个对象类型的不同实例之间共享功能. 如果 object2 的原型链中包含…
ECMAScript将对象的属性分为两种:数据属性和访问器属性.每一种属性内部都有一些特性,这里我们只关注对象属性的[[Enumerable]]特征,它表示是否通过 for-in 循环返回属性,也可以理解为:是否可枚举. 然后根据具体的上下文环境的不同,我们又可以将属性分为:原型属性和实例属性.原型属性是定义在对象的原型(prototype)中的属性,而实例属性一方面来自己构造函数中,然后就是构造函数实例化后添加的新属性. 本文主要介绍JavaScript中获取对象属性常用到的三种方法的区别和适…
ECMAScript将对象的属性分为两种:数据属性和访问器属性.每一种属性内部都有一些特性,这里我们只关注对象属性的[[Enumerable]]特征,它表示是否通过 for-in 循环返回属性,也可以理解为:是否可枚举.然后根据具体的上下文环境的不同,我们又可以将属性分为:原型属性和实例属性.原型属性是定义在对象的原型(prototype)中的属性,而实例属性一方面来自己构造函数中,然后就是构造函数实例化后添加的新属性. 本文主要介绍JavaScript中获取对象属性常用到的三种方法的区别和适用…
如果没接触过动态语言,以编译型语言的思维方式去理解javaScript将会有种神奇而怪异的感觉,因为意识上往往不可能的事偏偏就发生了,甚至觉得不可理喻.如果在学JavaScript这自由而变幻无穷的语言过程中遇到这种感觉,那么就从现在形始,请放下的您的”偏见”,因为这对您来说绝对是一片新大陆,让JavaScrip 好,言归正传,先理解JavaScrtipt动态变换运行时上下文特性,这种特性主要就体现在apply, call两个方法的运用上. 区分apply,call就一句话, foo.call(…
在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. const b = 2;//正确 // const b;//错误,必须初始化 console.log('函数外const定义b:' + b);//有输出值 // b = 5; // console.log('函数外修改const定义b:' + b);//无法输出 2.var定义的变量可以修改,…
没看之前千万别说我是标题党,这个问题真的有好多淫都不懂!!! 大家都看了很多文章,都说避免隐式声明全局变量,就是说声明变量前必须加'var',那加了'var'和不加'var'到底有啥区别呢? 先来看一段代码 var a = 'aa'; alert(a); //弹出 'aa' alert(window.a)//弹出'aa' 明白了吧,你声明一个全局变量其实是给'window'对象增加了一个属性,下面一段代码有相同效果 a = 'aa'; alert(a); //弹出 'aa' alert(wind…
a)  javascript中apply.call和bind的区别:http://www.cnblogs.com/cosiray/p/4512969.html b)  深入浅出 妙用Javascript中apply.call.bind   http://www.admin10000.com/document/6711.html ====================================================== 在JS中,这三者都是用来改变函数的this对象的指向的,他们…
javascript中&&和||的区别 &&和||操作符两边不是布尔类型时,系统会转换成布尔类型值再计算(空字符串.null.0都会被转成false),结果本身不变. &&操作符总结:只要一个false就取false的值,都是true取后面,都是false取前面. <script type="text/javascript"> var a = 123 && 234; var b = 0 && 1…
javascript中=.==.===区别详解今天在项目开发过中发现在一个小问题.在判断n==""结果当n=0时 n==""结果也返回了true.虽然是个小问题,却有着大影响,所以决定深入分析下.1.= 赋值运算符 //例: var n=1; console.log(n); n=n+1; console.log(n); 2.== 值比较运算符 值比较运算符在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较. //例: var a="…
今天在学习javascript的时候碰到了this,感觉它跟java里的有点不一样.然后上网查了一下,参考了这篇文章,JavaScript中this关键字详解,发现它们之间的区别主要是这样: java: public class TestThisInJava { public static void main(String[] args) { new B().showName();//a } } class A { String name = "a"; public void show…
在javascript中,window对象有两个主要的定时方法,分别是setTimeout 和 setInterval,其语法基本上相同,但是完成的功能取有区别. setTimeout方法是定时程序,就是在什么时间以后干什么. setInterval方法则是表示间隔一定时间反复执行某操作. 如果用setTimeout实现setInerval的功能,就需要在执行的程序中再定时调用自己才行.如果要清除计数器需要 根据使用的方法不同,调用不同的清除方法:例如:t=setTimeout('northsn…
JavaScript中的instanceof和typeof常被用来判断一个变量是什么类型的(实例),但它们的使用还是有区别的: typeof 运算符 返回一个用来表示表达式的数据类型的字符串. typeof expression ; expression 参数是需要查找类型信息的任意表达式. 说明 typeof 是一个一元运算符,放在一个运算数之前. typeof 运算符把类型信息当作字符串返回.typeof 返回值有六种可能: "number" ,"string"…
javascript 中 offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变 clientWidth.offsetWidth.clientHeight区别IE6.0.FF1.06+:offsetWidth = width + padding + borderoffsetHeight = height + padding + borderIE5.0/5.5:offsetWidth = widthoffsetHeight = height offsetWidth:是元素…