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))

  • 相关阅读:
    c语言结构体数组引用
    c语言结构体数组定义的三种方式
    如何为SAP WebIDE开发扩展(Extension),并部署到SAP云平台上
    SAP SRM ABAP Webdynpro和CFCA usb key集成的一个原型开发
    使用SAP API portal进行SAP SuccessFactors的API测试
    SAP UI5应用里的页面路由处理
    在SAP WebIDE Database Explorer里操作hdi实例
    如何使用SAP事务码SAT进行UI应用的性能分析
    使用SAP WebIDE进行SAP Cloud Platform Business Application开发
    SAP CRM WebClient UI ON_NEW_FOCUS的用途
  • 原文地址:https://www.cnblogs.com/Decmber/p/5635826.html
Copyright © 2011-2022 走看看