关键字in和delete的使用

2017-02-25  本文已影响0人  码农的世界你不懂

01 in关键字的使用:

代码示例:

<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关键字操作数组的时候检测的是索引值并非数组元素

<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>
上一篇下一篇

猜你喜欢

热点阅读