• 我JSP学习心得1


        老师布置了一项作业,说是要按着老师的要求写,但我觉得只要是技术分享的心得就是好的,不论是不是所要求的内容。

        由于和几个人在外面给别人搭建网站,项目需要学习了jsp有用到了javascript,这里有一些学习心得。

        给大家共享一下。

        在JS中一个对象的数据属性一般有4个特性,分别为

    • 值(value)
    • 可写性(writable)
    • 可枚举性(enumerable)
    • 可配置性(configurable) 
      后三者的值都是布尔型 
      Object.getOwnPropertyDescriptor() 可以获得某个对象特定属性的属性描述符 
      想要批量修改或者创建这四个特性需调用 
      Object.defineProperties()第一个参数是要修改的对象,第二个参数是一个映射表,它包含需要新建或者修改的属性的名称,以及他们的属性符描述 
      单个调用Object。defineProperty() 
      (只能修改自身的不能修改继承的)

    数组

    • 数组中的索引可以是不连续的(对于不连续的数组,其length属性大于元素个数)
    • 数组有两种创建方式(直接量,跟构造函数)

    //直接量 var ary = [1,3,2]; //构造函数 var ary = new Array(); /* 如果实例化一个数组对象时传递了一个参数 ary = new Array(10); 表示的是 ary这个数组的长度是10; 如果传递了两个或者以上则跟直接量创建的‘一样’ */var ary = [1,3,2]; //构造函数 var ary = new Array(); /* 如果实例化一个数组对象时传递了一个参数 ary = new Array(10); 表示的是 ary这个数组的长度是10; 如果传递了两个或者以上则跟直接量创建的‘一样’ */

    • 所有的数组都是对象,可以为其创建任意名字的属性。

    • ECMAScript 5 中新增的数组方法,基本都是遍历数组,原数组本身不变。 
      这些方法接受两个参数,一个function,一个context 
      第一个参数function中一般传递三个参数,分别为:当前遍历到的数组元素,当前遍历到的数组元素的索引,数组本身。 
      第二个参数 context 是可选参数,传递了,那么第一个参数function中的this,即为context。默认为window 
      1.forEach,从头自尾的遍历数组的每一项 
      举个栗子
    var ary =[1,2,3,4];
    ary.forEach(function(){
        console.log(arguments);
    })
    /*运行结果
    VM146:3 [1, 0, Array[4]]
    VM146:3 [2, 1, Array[4]]
    VM146:3 [3, 2, Array[4]]
    VM146:3 [4, 3, Array[4]]
    */

    2.map:将数组的每一项传给指定的函数,并返回一个数组 
    举个栗子

    var b = ary.map(function(item){
    item *= item;
    
    })
    /*
    运行结果
    b
    [undefined, undefined, undefined, undefined]
    */
    var b = ary.map(function(item){
        return item *= item;
    })
    /*
    运行结果
    b
    [1, 4, 9, 16]
    */

    3.filter()返回的数组元素是调用的数组的一个子集,通过传递的逻辑来判断。 
    举个例子

    var b = ary.filter(function(item){
        return item >2;
    })
    /*
    b[3, 4]
    */

    4.every()和some() 
    它们对数组元素应用指定函数进行判断,返回true跟false 
    every是针对所有的,只有当遍历完所有且均满足条件时才会返回true,在遍历的过程中,一旦有不符合条件的,则返回false,并停止遍历。 
    举个例子

    var num = 0;
    ary.every(function(item){
        num++;
        return item<2;
    })
    /*false
    num
    2*/

    some是针对,数组其中某个元素,一旦有一个元素满足条件,则返回true,且终止遍历,否则,直到遍历玩所有的,均不符合条件,则返回false。

    5.reduce 跟 reduceRight 
    reduce()和reduceRight是使用指定的函数将数组元素进行组合,生成单个值。 
    举个例子

    ary.reduce(function(x,y){
    return x+y;
    })
    //10

    reduce 需要两个参数。第一个是执行简单会操作的函数。第二个参数是给函数传递一个初始值。 
    举个例子

    ary.reduce(function(x,y){
    return x+y;
    },10)
    //20

    第一个参数function的参数 
    第一个为,当前计算的累积值(默认为0,如果reduce传递了第二个参数,则为第二个参数的值) 
    第2-4个参数,数组元素,数组元素索引,数组本身

    注意在空数组上,不带第二个参数(初始值)会报类型错误

    reduceRight的工作原理与reduce的原理类似,不同的是,reduce是从索引低到高处理数组,reduceRight刚好相反,从高到低处理。

    6.indexOf()跟lastIndexOf() 
    搜索整个数组中具有给定值的元素。 
    indexof 其第一次出现的索引值 
    lastIndexOf 最后一次出现的索引值 
    找不到则返回-1 
    举个栗子

    var ary = [1,3,1,3,1];
    var b = ary.indexOf(1);//0
    var b = ary.lastIndexOf(3);//3
    var b = ary.indexOf(10);//-1

    值得注意的是,这个方法不接受 函数作为参数,第二个参数也是可选的:它指定数组中的一个索引,即从哪里开始搜索。如果省略,则从头开始搜索。它也可以为负数,它代表对数组末尾的偏移量。

  • 相关阅读:
    HTML特殊字符编码对照表
    在Echarts 柱形图的单击事件中写入自定义的参数
    IIS7.5支持解析读取.json文件数据 -- 问题
    VS SVN
    WebApi 跨域问题解决方案:CORS
    SQL Server2012中的SequenceNumber尝试
    Oracle数据类型与.NET中的对应关系
    MongoDB 学习 --转
    MongoDB 基础
    CSS魔法堂:你真的懂text-align吗?
  • 原文地址:https://www.cnblogs.com/zxr63/p/5256048.html
Copyright © 2020-2023  润新知