javascript ,o检测属性

javascript 对象可以看作是属性的集合,我们经常会检测集合中成员中所属关系,判断属性是否在这个对象中,那么我们可以通过in, hasOwnProperty(),propertyIsEnumerable()

等方法。下面分别介绍这些方法:

一、in 检测属性是否属于该对象。

in 运算符左侧是属性名,右侧是对象,如果对象的继承属性或自有属性包括这个属性则返回true:如下

var o={x:1};

"x " in o   //true x 是 o 的属性

“toString"  in  o  // true  o 继承 toString 属性

二 hasOwnProperty()方法用来检测给定的名字是否是对象的自由属性。对于继承属性返回false 例子

var o={x:1};

o.hasOwnProperty("x")   //true :o 有一个自由属性x

o.hasOwnproperty("toString);  //false toString 是继承属性:

三、propertyIsEnumerable()是hasOwnProperty()增强版,不仅要检验是对象的自由属性,还要检验该属性,是否可枚举。如下

var o={x:1};

o.propertyIsEnumerable(x)  // true ,x 是o的自由属性,且可以枚举

Object.property.propertyIsEnumerable("toStirng") //false 不可枚举

以上除了使用in运算符外,更简单的方法使用“!==” 判断属性是否 undefined 的属性,如下代码:

var o={x:1};

o.x!==undefined   //true o 中有属性x

o.toString!==undefined //true o 中有继承属性 toString

但是有一种情况只能使用in 运算符 而不能使用上面的方式

如下:

var o={x:undefined};

o.x!==undefined  //false 属性存在 但值为undefined

"x"  in o  // true 存在属性x

时间: 2024-08-07 16:16:12

javascript ,o检测属性的相关文章

JavaScript数据检测

前言:随着编程实践的增加,慢慢发现关于数据类型的检测至关重要.我认为程序就是为了处理数据和展示数据.所以,数据的检测对于编程来说也至关重要.因为只有符合我们预期的输入,才可能产生正确的输出.众所周知,JavaScript是弱类型语言,这带来很多便利的同时,也带来了不少问题.为了减少编程实践中在变量判断方面出现的问题,我们需要对不确定的变量进行检测,以保证处理符合预期的数据.本文是对数据检测的总结. 1.检测原始值 ECMAScript 有 5 种原始类型(primitive type),即 Un

什么才是正确的javascript数组检测方式

前面的话 对于确定某个对象是不是数组,一直是数组的一个经典问题.本文专门将该问题择出来,介绍什么才是正确的javascript数组检测方式 typeof 首先,使用最常用的类型检测工具--typeof运算符 var arr = [1,2,3]; console.log(typeof arr);//'object' 前面已经介绍过,数组的本质是一种特殊的对象,所以返回'object'.typeof运算符只能用来区分原始类型和对象类型,对于更具体的对象类型是无法鉴别出来的 instanceof 这时

javascript 类型检测

javascript类型检测主要包括下面几个方法: typeofinstanceofObject.prototype.toStringconstructorduck type 一.typeof方法 typeof可以检测给定变量的数据类型,对一个值使用typeof操作符可能返回下列某个字符串: “undefined”  如果这个值未定义 “boolean”     如果这个值是布尔值 "string"        如果这个值是字符串 “number”     如果这个值是数值 “obj

jQuery和javascript中event属性

javascript中event属性说明 1.altKey 描述: 检查alt键的状态. 语法: event.altKey 可能的值: 当alt键按下时,值为 TRUE ,否则为 FALSE .只读. 2.button 描述: 检查按下的鼠标键. 语法: event.button 可能的值: 0 没按键 1 按左键 2 按右键 3 按左右键 4 按中间键 5 按左键和中间键 6 按右键和中间键 7 按所有的键 这个属性仅用于onmousedown, onmouseup, 和 onmousemov

JavaScript原生对象属性和方法详解——Array对象 转载

length 设置或返回 数组中元素的数目. 注意:设置 length 属性可改变数组的大小.如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失.如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为 undefined.所以length不一定代表数组的元素个数. var arr = new Array(3) arr[0] = "John" arr[1] = "Andy" arr[2] = "Wendy" cons

深入理解JavaScript中的属性和特性

深入理解JavaScript中的属性和特性? JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性. 主要内容如下: 理解JavaScript中理解对象的本质.理解对象与类的关系.对象与引用类型的关系 对象属性如何进行分类 属性中特性的理解 第一部分:理解JavaScript中理解对象的本质.理解对象与类的关系.对象与引用类型的关系 对象的本质:ECMA-262把对象定义为:无序属性的集合,其属性可以包含基本值.对象或者函数.即

javascript中对象属性的介绍

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> // 对象的属性是什么类型的? string // 如果对象的属性不是字符

Javascript中length属性的总结

Javascript中length属性的总结 一.StringObject中的length     length属性是返回字符串的字符数目. 例如: // 普通字符串 var str = "abcdef"; console.log(str.length); // 6 // 数组 var str1 = new Array(1,2,3,4); console.log(str1.length); // 4 // 数组与字符串 var str2 = str1 + str; // "a

[Javascript] Window的属性

window 代表浏览器中一个打开的窗口. Window的属性 属性 描述 closed 获取引用窗口是否已关闭. defaultStatus 设置或获取要在窗口底部的状态栏上显示的缺省信息. dialogArguments 设置或获取传递给模式对话框窗口的变量或变量数组. dialogHeight 设置或获取模式对话框的高度. dialogLeft 设置或获取模式对话框的左坐标. dialogTop 设置或获取模式对话框的顶坐标. dialogWidth 设置或获取模式对话框的宽度. fram