浅记JavaScriptのin 关键字
官方解释:
为什么用for ... in?
for ... in
是为遍历对象属性而构建的,不建议与数组一起使用,数组可以用Array.prototype.forEach()
和for ... of
,那么for ... in
的到底有什么用呢?
它最常用的地方应该是用于调试,可以更方便的去检查对象属性(通过输出到控制台或其他方式)。尽管对于处理存储数据,数组更实用些,但是你在处理有
key-value
数据(比如属性用作“键”),需要检查其中的任何键是否为某值的情况时,还是推荐用for ... in
。
1.forin遍历对象和数组
- 遍历对象
x
var obj = {
name:'隔壁老王',
age:'18',
sex:'男'
}
for(item in obj){
console.log(item,obj[item]);
}
/*
输出结果:
name 隔壁老王
age 18
sex 男
*/
- 遍历数组
x
var arr = [
{ id: 1, name: '波多野结衣' },
{ id: 2, name: '大桥未久' },
{ id: 3, name: '爱音玛利亚' }
]
for(item in arr) {
console.log(item, arr[item])
}
/*
输出结果:
0 {id: 1, name: "波多野结衣"}
1 {id: 2, name: "大桥未久"}
2 {id: 3, name: "爱音玛利亚"}
*/
2.判断对象中是否包含属性或方法
使用 in 关键字,可以判断一个对象是否存在某个属性&方法,返回布尔值
xxxxxxxxxx
var obj = {
name:'隔壁老王',
age:'18',
sex:'男'
}
// 判断是否存在 name 属性
var xxoo = 'name' in obj
console.log(xxoo)
//输出结果: true
3.in面试题
x
//题1
if ("a" in window) {
var a = 10;
}
alert(a); // 10
//执行过程
var a;
if ("a" in window) {
a = 10;
}
alert(a); // 10
// ---------------------
//题2
if (!"a" in window) {
var a = 10;
}
alert(a);// undefined
//执行过程
var a;
if (!"a" in window) {
a = 10;
}
alert(a); // undefined
// ---------------------
//题3
if (name in window) {
var a = 10;
}
alert(a);// undefined
//执行过程
var a;
console.log(window.name);// 空则为false
if(name in window){;
}
alert(a); // undefined
// ---------------------
//题4
if ("name" in window) {
var a = 10;
}
alert(a); // 10
//执行过程
var a;
// 任何非空字符串都会转换为true
if ("name" in window) {
a = 10;
}
alert(a); // 10
// ---------------------
//题5
if (a in window) {
var a = 10;
}
alert(a);
//执行过程
var a;
if(a in window){
a = 10;
}
alert(a);
Comments | NOTHING