• 第十周web作业


    1:

    (1)For each ... in:

    Explanation:

             语法:for each(variable in object){

                            statement

                            }

    参数:

    varible
    用来遍历属性值的变量,前面的var关键字是可选的.该变量是函数的局部变量而不是语句块的局部变量.
    object
    该对象的属性值会被遍历.
    statement
    遍历属性值时执行的语句. 如果想要执行多条语句, 请用({ ... }) 将多条语句括住.
    Examples:
    var sum = 0;
    var obj = {prop1: 5, prop2: 13, prop3: 8};
    for each (var item in obj) {
      sum += item;
    }     结果为26;
    (2)For....in:
    Explanation:语法:
    for (变量 in 对象)
    {
        在此执行代码
    }
    Example:进行数组的遍历
    var array= new Array()
    array[0] = "Saab"
    array[1] = "Volvo"
    array[2] = "BMW"
    for (var x in array)
    {
    document.write(array[x])  //for...in拿到的是该数组的下标
    }
    (3)For....of
    Explanation:语法:
    for (变量 of 对象)
    {
        在此执行代码
    }
    Example:进行数组的遍历
    var array= new Array()
    array[0] = "Saab"
    array[1] = "Volvo"
    array[2] = "BMW"
    for (var x in array)
    {
    document.write(x)  //for...of拿到的是该数组的值
    }
    2:了解关于Object的起源:
           JavaScript中的对象是什么?ES5中只给出一句话,对象是属性的集合。它只是一个盒子,它能做什么,取决于盒子里有什么。那么,属性是什么,一般看来,属性是一个key, value对,这个说法是对的吗?我们来剖析下属性。从一个程序员的角度来说,属性分为可通过JS调用的的和不可通过JS调用的。不可调用的叫做内部属性,那么可调用的我们对应着叫外部属性吧。内部属性是JS解释器实现各种接口的时候使用的算法中需要调用的属性,举个栗子,有个内部属性叫[[Put]],这是一个内部方法,传入属性名和值,它的作用就是为属性赋值。所以当我们使用a.age = 18的时候,实际就调用到了这个内部属性。而外部属性又分为两种,一种是数据属性,一种是访问器属性。上面的例一中,第二种方式给对象a添加了三个属性,其中name、_age是数据属性,age是访问器属性。当属性是数据属性的时候,属性是key、value对的说法好像是对的,但当属性是访问器属性的时候,这个说法好像有问题了,因为一个key对应的是一个setter和一个getter。所以,这个说法是错的?
      其实,属性不是我们看到的那样,单单就一个key对应一个数据或者一个setter加一个getter。属性还存在其他一些状态,我们称之为特性,无论是数据属性还是访问器属性,都存在四个特性。数据属性的特性为:[[Value]]、[[Writable]]、[[Enumerable]]、[[Configuration]],访问器属性的特性为:[[Get]]、[[Set]]、[[Enumerable]]、[[Configuration]]。其中[[Value]]、[[Get]]、[[Set]]相信已经很好理解了,[[Writable]]描述数据属性是否可被重新赋值,[[Enumerable]]描述属性是否可被for-in遍历,[[Configuration]]描述属性特性是否可被修改(一旦设置为false则不可以再修改此特性)。
      JS开放了三个接口用于设置和获取属性的特性,分别是Object.defineProperty、Object.defineProperties和Object.getOwnPropertyDescriptor。
    3:改后的标准函数:
    var materials = [
      'Hydrogen',
      'Helium',
      'Lithium',
      'Beryllium'
    ];
    console.log(materials.map(function(materils){
                        return materils.length()
    })
    4:关于Event Flow和事件机制
    1:Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。

    事件通常与函数结合使用,函数不会在事件发生前被执行!

    Flow 的各种类型检查特性,以及它能够如何帮助我们捕获错误并提高代码质量。 Flow 也可以通过在每一个文件的基础上“选择性进入”来使其易于上手的, 还有就是进行类型推断,让我们不用在代码中添加注解就能获得初步的实用反馈。

  • 相关阅读:
    第一章:绪论
    第二章 算法入门
    java基本语法特殊点
    css学习の第六弹—样式设置小技巧
    122. Best Time to Buy and Sell Stock II--easy
    121. Best Time to Buy and Sell Stock--easy
    Weekly Contest 129--1023. Binary String With Substrings Representing 1 To N--Medium
    Weekly Contest 129--1021. Best Sightseeing Pair--Medium
    Weekly Contest 129--1022. Smallest Integer Divisible by K--Medium
    Weekly Contest 129--1020. Partition Array Into Three Parts With Equal Sum--easy
  • 原文地址:https://www.cnblogs.com/yyh187/p/9925296.html
Copyright © 2020-2023  润新知