zoukankan      html  css  js  c++  java
  • 《JavaScript 秘密花园》

    恰巧今天是传统民间重要的节日之一——七夕节:

    14707250734062543

    被大家挂在嘴上最多的一句话便是:有对象了吗?这不……

    14707250737454023

    这样的话,那咱就先给new出一个对象吧:

    var boyfriend = new Object();

    然后再往其中增加属性,比如:他的名字叫Jay;

    1.对象:①增加属性

    boyfriend['name']='Jay';
    

    ②访问属性(两种方式:点操作符或者中括号操作符)

    boyfriend.name;//"Jay"
    boyfriend[name];//"Jay"

    ③删除属性:

    delete操作符,但是:设置属性为 undefined 或者 null 并不能真正的删除属性, 而仅仅是移除了属性和值的关联。

    var boyfriend = {
        nose: 1,
        hands: 2,
        eyes:2
    };
    boyfriend.nose = undefined;
    boyfriend.hands = null;
    delete boyfriend.eyes;
    
    for(var i in boyfriend) {
        if (boyfriend.hasOwnProperty(i)) {
            console.log(i, '' + boyfriend[i]);
        }
    }
    // nose undefined
    // hands null

    只有eyes属性被真正删除了;

    ④当检查对象上某个属性是否存在时,hasOwnProperty 是唯一可用的方法。 同时在使用for in loop遍历对象时,推荐总是使用 hasOwnProperty 方法, 这将会避免原型对象扩展带来的干扰。

    ⑤for in 循环

    查找对象属性时遍历原型链上的所有属性;

    Object.prototype.eyes = 2;
    
    var boyfriend = {hands:2};
    for(var i in boyfriend ) {
        console.log(i); 
    }
    //输出两个属性:hands   eyes

    对象使用for-in循环,数组使用经典的for循环。

    for in循环会枚举原型链上所有属性,唯一过滤这些属性的方式是使用 hasOwnProperty 函数, 因此会比普通的 for 循环慢上好多倍。

    注意:虽然 length 是数组的一个属性,但是在每次循环中访问它还是有性能开销。故:实际上,不使用缓存数组长度的方式比缓存版本要慢很多。因此建议使用时缓存数组长度。

    最后附上阅读链接:http://bonsaiden.github.io/JavaScript-Garden/zh/

    还有这个(-_-祝愿大家开开心心的~)

    20150819112846611.jpg790x600

  • 相关阅读:
    nginx搭建文件服务器配置文件
    VS code
    UNIX 网络编程学习
    局域网内的一些计算机可以ping通 有些ping不同
    Cfree clion windows c语言 socket 网络编程
    查找文件
    select * from 后有多个表的使用方法
    linux安装git方法
    Xshell中文乱码怎么处理?
    linux 逻辑卷管理 /dev/mapper/VolGroup-lv_root 100%调整分区大小
  • 原文地址:https://www.cnblogs.com/zhengyeye/p/7445045.html
Copyright © 2011-2022 走看看