JS in的用法
1.1简介
JavaScript中的in 操作符是对Object(对象)操作的,并不是针对数组。
1.2用法
1.2.1简单用法
in的右边必须是对象变量。
例:
var mycar = {make: "Honda", model: "Accord", year: 1998};
if("make" in mycar){
console.log('true');
}else{
console.log('false');
}
运行结果:true
1.2.2错误的用法
若把in 用于数组的判断时,会产生错误。
例:
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
if("oak" in trees){
console.log('true');
}else{
console.log('false');
}
运行结果:false
反过来,把trees数组看成一个对象,然后判断对象中的元素。
例:
if(0 in trees){
console.log('true');
}else{
console.log('false');
}
运行结果:true
console.log(trees.length);
运行结果是:trees数组对象的length属性值5。
if('length' in trees){
console.log('true');
}else{
console.log('false');
}
运行结果true,因为length是trees数组对象的属性。
1.2.3 用in来简化if语句多个“或”条件的情况
例:
if(foo == 'bar' || foo == 'foobar' || foo == 'foo'){
//...
}
简化为:
if(foo in { 'bar':'', 'foobar':'', 'foo':'' }){
//...
}
1.2.4对数组判断的正确方法
1、通过循环来解决
function in_array(searchString,array){
for(var i=0;i<array.length;i++){
if(searchString == array[i]){
return true;
}
return false;
}
if(in_array('oak',trees)){
console.log('true');
}else{
console.log('false');
}
2、把数组一一映射到对象的属性,再用in判断。
function oc(a){
var o = {}; //相当于var o = new Object();
for(var i=0;i<a.length;i++){
o[a[i]]=''; //注意该写法,不能写成o.a[i]
}
return o;
}
if('oak' in oc(trees)){
console.log('true');
}else{
console.log('false');
}
运行结果:true
注意:obj.key和obj['key']可以互通,但在for(;;)和for(in)语句中,对象属性的写法是obj['key'],而不是obj.key。
1.3使用in 操作符的注意事项
1、区分要判断的是数组还是对象。
2、in 面向的必须是对象
例:
var color1 = new String("green");
"length" in color1//返回值true
var color2 = "coral";
"length" in color2// generates an error (color is not a String object)
JavaScript字符串并不能直接就处理为字符串对象。FireFox 中会报“invalid 'in' operand color2”,IE 中会报“缺少对象”。
3、对象属性被删除(deleted)或未定义(undefined)的判断
用delete删除对象的属性值:
例1:
var mycar = {make: "Honda", model: "Accord", year: 1998};
delete mycar.make;
"make" in mycar; //返回值false
例2:
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
delete trees[3];
3 in trees; //返回值false
把对象属性值设置为undefined:
例1:
var mycar = {make: "Honda", model: "Accord", year: 1998};
mycar.make = undefined;
"make" in mycar; //返回值true
例2:
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
trees[3] = undefined;
3 in trees; //返回值true
1.4 与for的应用
1.4.1 简单用法
然数组可以转换为对象,对象也可以看成是“关联数组”。
例1-1:
var a = ["a","b","c"];
for(var n in a){ //亦可以是for(n in a)
console.log(a[n]);
}
运行结果:
a
b
c
for(n in a){
console.log("false");
}
运行结果:false
for(n in a){
console.log("turn");
console.log(a[n]);
}
运行结果:
turn
a
turn
b
turn
c
例1-2:
var a = {"first":1,"second":2,"third":3};
for(n in a){
console.log(n+"=>"+a[n]);
}
运行结果:
first=>1
second=>2
third=>3
例2-1:
var oneArray=new Array();
oneArray["firstKey"]="firstValue";
oneArray["secondKey"]="secondValue";
for(key in oneArray){
console.log(key+'=>'+oneArray[key]);
}
运行结果:
firstKey=>firstValue
secondKey=>secondValue
例2-2:
var oneObject={};
oneObject.firstKey="firstValue";
oneObject.secondKey="secondValue";
for(key in oneObject){
console.log(key+'=>'+oneObject[key]);
}
运行结果:
firstKey=>firstValue
secondKey=>secondValue
1.4.2 判断一个对象是否可以进行for in穷举——propertyIsEnumerable属性
1、用法
propertyIsEnumerable属性的返回Boolean值,指出所指定的属性是否为一个对象的一部分以及该属性是否是可列举的。
2、语法:
object.propertyIsEnumerable(proName);
3、参数介绍
Object 必选项,一个对象。
proName 必选项,一个属性名称的字符串值。
如果 proName 存在于 object 中且可以使用一个 For…In 循环穷举,那么propertyIsEnumerable属性返回true。如果 object不具有所指定的属性或者所指定的属性不是可列举的,那么propertyIsEnumerable属性返回false。典型地,预定义的属性不是可列举的,而用户定义的属性总是可列举的。
注意:propertyIsEnumerable属性不考虑原型链中的对象。
例如:
function testIsEnumerable(){
var a = new Array("apple", "banana", "cactus");
return(a.propertyIsEnumerable(1));
}
发表评论
-
JavaScript中对象的总结
2018-03-10 10:43 668JavaScript中对象的总结 1. ... -
JS数字指定长度不足前补零的实现
2018-03-10 10:25 12555JS数字指定长度不足前补零的实现 问题描述: ... -
银行卡卡号校验——Luhn算法
2017-11-06 09:34 2641银行卡卡号校验——Luhn算法 1.1 Luhn简介 ... -
JavaScript数组操作——遍历方法的兼容
2017-11-04 14:46 867JavaScript数组操作——遍历方法的兼容 1.1概述 ... -
Javascript数组操作
2017-11-04 14:17 866Javascript数组操作 1.1颠倒数组元素顺序 1.1. ... -
获取select标签选中值
2017-11-03 08:54 1459获取select标签选中值 1.1实例讲解 <!DOCT ... -
表单提交前的验证方式——form的onsubmit事件
2017-10-30 14:21 8317表单提交前的验证方式——form的onsubmit事件 1.1 ... -
document.forms用法详解
2017-10-30 11:20 2839document.forms用法详解 1.1概述 ... -
js模拟表单post方式提交
2017-10-30 09:44 2146js模拟表单post方式提交 1.1概述 用j ... -
Form表单提交,页面不跳转的方法
2017-10-18 15:09 5669Form表单提交,页面不跳转的方法 1.1 解决方案一 ... -
javascript定时功能详解
2017-09-24 15:05 754javascript定时功能详解 1. ... -
js程序中$符号详解
2016-09-14 11:13 722js程序中$符号详解 $符号在php中是表示变 ... -
JS比较运算符之等于与不等于详解
2016-07-05 17:56 1919JS比较运算符之等于与不等于详解 1.1等于(==)与不等于( ... -
JS 访问对象中数据易错点总结
2016-04-16 16:07 492JS 访问对象中数据易错点总结 1.1访问Hash中的键值 例 ... -
JS number保留整数及n位小数的方法
2016-04-16 15:27 2803JS number保留整数及n位小 ... -
if语句中使用多个条件的优化
2016-04-16 11:31 7062if语句中使用多个条件 ...
相关推荐
i++)这样的用法一般都可以用for in 来替代。 例如: 代码如下: var a = [“a”,”b”,”c”]; for(var el in a){ alert(a[el]); } 这个就是穷举出a中的所有元素,当然上面这个例子是可以用 代码如下: for...
js 中 for in 语句的用法讲解 js 中 for in 语句是一种遍历对象属性的语句,它可以遍历对象的可枚举属性。for in 语句的基本语法为:for (variable in object) statement,其中 variable 是声明的一个变量,object ...
首先,让我们看一个简单的`for...in`循环的用法: ```javascript var person = { firstName: "John", lastName: "Doe", age: 30 }; for (var prop in person) { console.log(prop + ": " + person[prop]); } `...
插件描述:aos.js是一款效果超赞的页面滚动元素动画jQuery动画库插件。该动画库可以在页面滚动时提供28种不同的元素动画效果,以及多种easing效果。在页面往回滚动时,元素会恢复到原来的状态。 简要教程 aos.js是一...
- **A Framework Apart (与众不同的框架)**:这一章节深入探讨了Ext JS的设计理念及其与其他JavaScript库的区别之处。通过对架构、设计理念和开发模式的介绍,帮助读者理解为什么Ext JS能够成为构建复杂Web应用的...
for(variable in object) statement variable 是声明一个变量的var语句,数组的一个元素或者是对象的一个属性 在循环体内部,对象的一个属性名会被作为字符串赋给变量variable。 注意:对象的有些属性以相同的...
### Node.js in Action, Second Edition – Bradley Meck & Alex Young #### 核心知识点概览 **本书概览:** 《Node.js in Action, Second Edition》由Bradley Meck与Alex Young共同撰写,是一本全面深入介绍Node...
for in 循环执行一个对象中的属性 with语句: (对象操作语句) 功能:为一段程序建立默认对象 格式: 代码如下: with(<对象>){ <语句组> } 具体示例: 代码如下: [removed] function member(name,...
本文实例讲述了JS for…in 遍历语句用法。分享给大家供大家参考,具体如下: for…in 语句用于对数组或者对象的属性进行循环操作。 for (变量 in 对象) { 在此执行代码 } 这里的“变量”用来指定变量,指定的变量...
### JavaScript中的循环结构详解 在JavaScript编程中,循环是一种非常重要的控制流程结构,它能够帮助开发者重复执行一段代码,直到满足特定的终止条件。本文主要介绍四种常用的循环结构:`for`循环、`for...in`...
JavaScript,也常被称为JS,是一种轻量级的编程语言,主要应用于网页和网络应用开发。在一天内学习JavaScript,虽然时间紧迫,但并非不可能。JavaScript是互联网上最广泛使用的脚本语言,它允许开发者实现交互式的...
JavaScript,简称JS,是一种广泛应用于Web开发的轻量级编程语言,主要负责客户端的交互和动态效果。在网页中,JavaScript通常与HTML和CSS结合,构成网页内容展示、用户交互和数据处理的核心部分。本篇将围绕“js经典...
它的基本用法是将一个属性名(可以是字符串或者可以被转换为字符串的值)放在in关键字的左边,然后将一个对象放在in关键字的右边。如果对象包含有这个属性名所指定的属性,in运算符就会返回true,否则返回false。 ...
JavaScript 提供了多种控制语句,其中包括“for...in”语句,这是一种为对象属性或者数组元素提供便捷遍历方式的结构。 首先,我们需要理解在JavaScript中的对象以及数组的概念。对象是键值对的集合,而数组则是...
此外,作者还详细解释了Node.js如何利用JavaScript实现服务器端编程。 - **核心知识点**: - Node.js的发展历程及其背后的动机。 - Node.js的非阻塞I/O模型是如何工作的。 - 为什么Node.js非常适合构建实时Web...
《Ext JS in Action (MEAP) 2009》是针对Ext JS 3.0框架的一本权威教程,旨在帮助开发者深入理解和掌握这一强大的JavaScript库。Ext JS是一款用于构建富客户端Web应用的开源框架,它提供了丰富的组件库、数据绑定...
根据提供的文件内容,我们可以总结出以下几个JavaScript相关的知识点: ### 1. LINQ to SQL 查询语法在 JavaScript 中的应用 虽然从代码片段来看,这段代码更像是 C# 的 LINQ to SQL 的查询语法,但在JavaScript...