• Javascript 对象


    前言

    Javasript是一个比较危险的语言,纯属个人感觉,可能是比较简单,所以并不会那么去注意这一门语言的特性,我记得有专家说过,如果学习一门语言,回首先从它的特性开始学习。

    对象

    对象是属性的容器,其中每个属性都拥有名字和值,属性的名字可以是包括空字符串在内的任意字符串;属性值可以是除undefined值之外的任何值。

    检索

    1. 要检索对象里包含的值,可以采用在[]后缀中括住一个字符串表达式的方式,但是,优先考虑使用"."表示法,因为它更紧凑而且可读性更好。

    2. 如果尝试检索一个并不存在的成员属性的值,将返回undefined。尝试从undefined的成员属性中取值将会导致TypeError异常。这时可以通过 && 运算符来避免错误。

    a.b //undefinded
    a.b.c //throw "TypeError"
    
    a.b && a.b.c //undefined
    
    

    更新

    对象里的值可以通过赋值语句来更新,如果属性名已经存在于对象里,那么这个属性的值将会被替换。

    如果对象之前没有那个属性名,那么该属性就会被扩充到对象中。

    引用

    对象通过引用来传递,它们永远不会被复制。

    var b = a;
    a.name = 'b';  //这时a和b对象的name属性值都更新为b
    
    var a = {}, b = {}, c = {}; //a,b,c每个都引用一个不同的空对象
    a = b = c = {};
    

    原型

    只有在检索的时候,会检查原型链;如果找不到,会一直从原型中找,直到找到,如果找不到返回undefined,这个过程叫做委托。

    反射

    可以通过typeof 和 hasOwnProperty方法查询对象什么属性。

    枚举

    如果使用for in函数,属性名出现的顺序是不确定的,因此要对任何可能出现的顺序有所准备。如果想要特定的顺序,最好的办法是避免使用for in,而是创建一个数组,里面包含属性名,再使用for循环访问。

    减少全局变量污染

    只有把全局性的资源都纳入一个名称下,你的程序和其他应用程序之间发生的冲突的可能性就会显著降低。

    var a = {}; //顶层结构
    a.b = {};
    
    
  • 相关阅读:
    四则运算二
    学习进度
    软件工程个人作业01
    观《构建之法》有感
    软件工程概论课程引言课后作业
    编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。
    软件需求与分析课堂讨论一
    软件需求模式阅读笔记一
    我们应当怎么做需求分析
    问题账户需求分析
  • 原文地址:https://www.cnblogs.com/George1994/p/6396086.html
Copyright © 2020-2023  润新知