【冰山白皮书】JS中的对象

图片描述

关于咱们

QQ答疑交流群:
600633658html

咱们的连接:前端

知乎 掘金 今日头条 新浪微博 前端网 思否 简书 B站正则表达式

什么是对象

  1. 是由属性以及属性所对应的值组成的合集,是没有顺序的
  2. 除6种原始数据类型以外,全部的数据都是对象。

对象和原始类型区别segmentfault

  1. 对象有属性,属性所对应的值能够是原始数据类型,也能够是方法,还能够是对象
  2. 对象有方法,方法是一种特殊的属性,对应的值是一个函数,用于实现某种功能,因而可知函数也是对象。数组

    (回顾为何String Number Boolean也可使用方法或者调用属性)
  3. 对象是可变的,改变的本质是对象属性发生了变化。

对象的分类

内部对象浏览器

  • 错误对象:Error
  • 本地对象:Boolean String Number Array Date Function Object RegExp
  • 内置对象:解释器内置,不须要使用New global Math Json

宿主对象函数

运行环境提供的对象:window documentspa

自定义对象code

开发者本身建立的对象htm

原始类型转换到对象

  • Object(true)----{[[PrimitiveValue]]: true}
  • Object(123)----{[[PrimitiveValue]]: 123}
  • Object("abc")——{0:'a',1:'b',2:'c',length:3,[[PrimitiveValue]]: true}
  • Object(null)----{}
  • Object(undefined)----{}

联系上文对象和原始类型区别)

对象上的两个基础方法

toString

  1. 将当前对象用字符串表示出来。
  2. 全部的内部对象和宿主对象都重写了toString方法。

    • Boolean String Number直接返回对应的字符串。
    • Array:为数组的每一项调用toString方法并将结果用逗号链接
    • Date:返回一个由日期和时间组成的字符串(不一样的环境下结果不同)
    • Function:返回函数体内部的源码
    • Object:返回[object object]
    • RegExp:返回正则表达式的直接量字符串(带转义符)
  3. 能够接受一个2~36的数字做为参数,表示须要转换的内容是几进制的

valueOf

  1. 有原始值返回原始值
  2. 没有原始值返回自己
  3. Date对象返回距离1970年1月1日0点的毫秒数

对象转换到原始类型

  1. Boolean:全部的对象转换到布尔类型都为true.(JS中只有6个值能转成false)
  2. String:先调用toString方法,再调用valueOf方法
  3. Number:先调用valueOf方法,再调用toString方法

如何建立一个对象

  1. 使用字符字面量的方式(最简单)

    var o={age:123}
    注意:属性名中若是有空格,连字符,关键字或者保留字的时候必须使用引号(在ES5中保留字能够不使用引号,可是不建议这么作)最后一个逗号须要删除,不然在IE7及如下的浏览器中会报错
  2. 使用new操做符(最标准)

    var o=new Object()
    
    var s=new String(‘abcd’)
    
    var n=new Number(123)
    
    var a=new Array(3)
    
    var d=new Date(2017/04/15)
    var a=new Array 没有参数的时候能够不写括号
  3. 使用ES5中的新方法(最精确,最麻烦)

    Object.creat()
    接受两个参数:1要继承的原型,2对象的详细描述

对象的属性的获取

两种写法:点或者方括号,点后面放属性名称,括号里面放表达式

属性获取过程详解

当JS的解释器在代码中遇到“.”或者 “[ ]”的时候将进行如下操做

  1. 对“.”或者 “[ ]”前面的表达式进行计算并获取结果
  2. 若是是undefined或null直接报错
  3. 若是不是对象就转换成对应的对象
  4. 若是是“.”,则查找对应的属性
  5. 若是是 “[ ]”,先计算“[ ]”里面的表达式,再将结果转换为字符串,并查找对应的属性
  6. 若是该属性存在则返回对应的值
  7. 若是该属性不存在则返回undefined
相关文章
相关标签/搜索