01 in关键字的使用:
- 01 for in 循环中 遍历对象的键
- 02 判断某个对象中是否存在指定的属性,注意所有的key值都是字符串。
代码示例:
<script>
var obj = {
name:"苹果",
color:"黑苹果"
};
for(var key in obj) {
console.log(key, obj[key]);
}
//02 检查是否存在指定的属性
//语法 键 in 对象
//注意点:在使用in关键字的时候,key是字符串,需要加上双引号
var isInculde = "name" in obj;
console.log(isInculde) ; //true or false
//03 in在操作数组的时候的注意点
var arr = [1,3,4,5,8];
//数组:索引 _ 数组元素(具体)
//注意:在使用in操作数组的时候,操作的是所有
console.log(5 in arr) ; //false
//04 检查数组中是否有指定的元素
//001 for循环,遍历数组中所有的元素,每遍历一次就判断一次,如果相等就返回改元素的索引
for (var i = 0; i < arr.length; i++) {
if(arr[i] == 4)
{
console.log(i);
break;
}
}
//02 indexOf 如果有那么就返回索引,如果没有那么就返回-1
console.log(arr.indexOf(9));
</script>
注意:in关键字操作数组的时候检测的是索引值并非数组元素
-
02 delete关键字的用法:
01 删除对象中的实例属性。
02 删除未使用var声明的变量。
-
03 返回值为boolean类型,true则 表示是否删除成功
delete 使用的注意点
- 01 它是有返回值的,它的值是布尔类型
- 02 不能删除var 声明的变量
- 03 可以删除直接定义在window上面的属性,但是无法删除全局变量(var)
<script>
//01 删除对象中的实例属
var obj = {
name:"小黄",
color:"黄色"
};
console.log(delete obj.age); //返回值 true
console.log(obj.color);
console.log(delete obj.color);;
console.log(obj.color); //null or (undefined)
// 02 删除未使用var声明的变量
//没有使用var关键字声明的变量是全局变量,自动成为window的属性
test = "这是一个没有使用var关键字声明的变量";
console.log(test);
delete test;
//console.log(test); //报错
console.log(window.test); //undefined
//03 能够删除使用var关键字声明的变量吗? 不能
var testVar = "使用var声明的变量";
console.log(delete testVar); //false
console.log(testVar); //使用var声明的变量
//能够删除成功
window.nameDemo = "demo";
console.log(window.nameDemo); //demo
delete window.nameDemo;
console.log(window.nameDemo);
//无法删除成功
var demo = "demo------";
</script>