zoukankan      html  css  js  c++  java
  • ECMAScript5学习笔记-第1章至第9章

    详细参考:http://yanhaijing.com/es5/#77

    8.6--Object类型

    Object:一个属性的集合。每个属性既可以是一个命名的数据属性,也可以是一个命名的访问器属性,或是一个内部属性。

    两种带名字的访问器属性(非内部属性):get(取值) 和 put(赋值)。

    8.6.1--Property

    Attributes用于定义和解释命名属性properties的状态。命名的数据属性由一个名字关联到一系列特性(attributes)。

    所有对象(包括宿主对象)必须实现下表中的所有内部属性。

    所有对象都有一个叫做[[prototype]]的内部属性,此对象的值是null或一个对象,并且它用于实现继承。一个原生属性是否可以把宿主对象作为它的[[Prototype]]取决于实现。所有[[prototype]]链必须是有限长度(即从任何对象开始,递归访问[[prototype]]内部属性必须最终到头,并且值是null)。从[[prototype]]对象继承来的命名数据属性(作为子对象的属性可见)是为了get请求,但无法用于put请求。命名访问器属性会把get和put请求都继承。

    本规范中的每种内置对象都定义了[[Class]]内部属性的值。内部属性的值可以是除了"Arguments","Array","Boolean","Date","Error","Function","JSON","Math","Number","Object","RegExp","String"的任何字符串。[[Class]]内部属性的值用于内部区分对象的种类。本规范中除了通过Object.prototype.toString没有提供任何手段使程序访问此值。

    8.7引用规范类型

    一个引用是个已解决的命名绑定。一个引用由三部分组成,基值,引用名称和布尔值 严格引用标志。基值是undefined,一个Object,一个Boolean,一个String,一个Number,一个environment record中的任意一个。基值是undefined表示此引用可以不解决一个绑定。引用名称是一个字符串。

     8.7.1 GetValue(v)

     8.7.2 PutValue(v,w)

    本规范中使用以下抽象操作接近引用的组件:

    • GetBase(V)。 返回引用值 V 的基值组件。
    • GetReferencedName(V)。 返回引用值 V 的引用名称组件。
    • IsStrictReference(V)。 返回引用值 V 的严格引用组件。
    • HasPrimitiveBase(V)。 如果基值是 Boolean, String, Number,那么返回 true。
    • IsPropertyReference(V)。 如果基值是个对象或 HasPrimitiveBase(V) 是 true,那么返回 true;否则返回 false。
    • IsUnresolvableReference(V)。 如果基值是 undefined 那么返回 true,否则返回 false。

    8.9 完结规范类型

    完结类型的值是由三部分组成:形如(type,value,target)。其中type是normal,break,continue,return,throw之一。value是任何ECMAScript语言值或empty,target是任何ECMAScript标识符或empty。

    8.10  属性描述符及属性标识符规范类型

     8.10.1 IsAccessorDescriptor(Desc)

     8.10.2 IsDataDescriptor(Desc)

     8.10.3 IsGenericDescriptor(Desc)

     8.10.4 FromPropertyDescriptor(Desc)

     8.10.5 ToPropertyDescriptor(Obj)

    8.12 对象内部方法的算法

     8.12.1 [[GetOwnProperty]](P)

     8.12.2 [[GetProperty]](P)

     8.12.3 [[Get]](P)

     8.12.4 [[CanPut]](P)

     8.12.5 [[Put]](P,V,Throw)

     8.12.6 [[HasProperty]](P)

     8.12.7 [[Delete]](P,Throw)

     8.12.8 [[DefaultValue]](hint)

     8.12. 9[[DefineOwnProperty]](P,Desc,Throw) 

    9  类型转换与测试

    转换运算符是多态的 --它们可以接受任何ECMAScript语言类型的值,但是不接受规范类型。

    9.1   ToPrimitive--接受一个值,和一个可选的期望类型做参数。

    9.2   ToBoolean

    9.3   ToNumber

    9.4   ToInteger(先调用ToNumber,NaN-->+0;+0,-0,+∞,-∞-->Result(1);计算sign(Result(1) * floor(abs(Result(1)))),返回Result(4))

    9.5   ToInt32:(32位有符号整数)

    9.6   ToUint32:(32位无符号整数)

    9.7   ToUint16:(16位无符号整数)

    9.8   ToString

    9.9   ToObject

    9.10  CheckObjectCoercible:(在其参数无法用ToObject转换成对象的情况下抛出一个异常)

    9.11  IsCallable:(确定其必须是ECMAScript语言值的参数是否是一个可调用对象)

    9.12  SameValue算法:(SameValue(x,y))

  • 相关阅读:
    mysql数据库基本类型
    常用辅助类【转】
    Java 并发笔记】并发机制底层实现整理[转发]
    关于PROPAGATION_NESTED的理解
    线程数设置
    c# Expression 扩展[转]
    Net定时器 【转载】
    【转】高可用设计-58沈剑
    【转】委托的三种调用示例(同步调用 异步调用 异步回调)
    [coursera OA] acme match
  • 原文地址:https://www.cnblogs.com/Decmber/p/5635826.html
Copyright © 2011-2022 走看看