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

  • 相关阅读:
    流程图制作在云上 https://www.processon.com/
    白板编程浅谈——Why, What, How
    如何创建一个非常酷的3D效果菜单
    Xcode及模拟器SDK下载
    Swift项目兼容Objective-C问题汇总
    iOS 多个精致动画
    代码注释中的5要与3不要
    如何处理iOS中照片的方向
    会报编译器警告的Xcode 6.3新特性:Nullability Annotations
    iOS应用架构谈 view层的组织和调用方案
  • 原文地址:https://www.cnblogs.com/zhengyeye/p/7445045.html
Copyright © 2011-2022 走看看