zoukankan      html  css  js  c++  java
  • 引用类型和方法

    Array数组类型
    //简单排序
    function compare(value1,value2){
    if(value1<value2){
    return -1;
    }else if(value1>value2){
    return 1;
    }else{
    return 0;
    }
    }
    var values=[0,1,5,4,3,2,10,15];
    values.sort(compare);
    //console.log(values); //[0, 1, 2, 3, 4, 5, 10, 15]
    //concat()方法可以基于当前数组中的所有项创建一个新数组
    var colors=["red","blue","green"];
    var colors2 = colors.concat("yellow",["black","brown"]);
    //console.log(colors,colors2);
    //["red", "blue", "green"] ["red", "blue", "green", "yellow", "black", "brown"]

    //slice()他能够基于当前的数组中的一个或多个项创建一个新数组。slice()方法可以接受一或两个参数,既要返回项的起始和结束位置。在只有一个参数的情况下,slice()方法返回该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项(但不包括结束位置的项),slice()不会影响原始数组
    var colors=["red", "blue", "green", "yellow", "black", "brown"];
    var colors2=colors.slice(1);
    var colors3=colors.slice(1,4);
    //console.log(colors,colors2,colors3);
    //["red", "blue", "green", "yellow", "black", "brown"] ["blue", "green", "yellow", "black", "brown"] ["blue", "green", "yellow"]

    //splice()主要用途是向数组中部插入项,但使用这种方法则有如下3种。
    //删除:可以删除任意数量的项,只需要执行2个参数:要删除的第一项位置和删除的项数。例如splice(0,2)会删除数组中的前两项
    //插入:可以像指定位置插入任意数量的项,只需要提供3个参数:起始位置,0(要删除的项目)和插入的项。如果要插入多项在传人第四第五。。。。例如splice(2,0,"red","green");会从当前数组位置2开始插入字符串“red”和“green”
    //替换:可以像指定位置插入任意数量的项,且同时删除任意数量的项,只需要指定3个参数:例如splice(2,1,"red","green");会删除当前数组位置2的项,然后从位置2开始插入字符串
    var colors=["blue", "green", "yellow", "black", "brown"] ;
    var removed=colors.splice(0,1);
    //console.log(colors,removed); //["green", "yellow", "black", "brown"] ["blue"]

    removed=colors.splice(1,0,"orange","red");
    //console.log(colors,removed) //["green", "orange", "red", "yellow", "black", "brown"] []

    removed = colors.splice(1,1,"red","purple");
    //console.log(colors,removed); //["green", "red", "purple", "red", "yellow", "black", "brown"] ["orange"]
    //位置方法
    //数组实例添加两个位置方法:indexOf()和lastIndexOf().这两个方法度接受两个参数
    //没有找到的情况下返回-1
    //迭代方法

    //every():对数组中的每一项进行给定函数,如果该函数对每一项都是返回true,则返回true.
    //filter():对数组中的每一项进行给定函数,返回该函数会返回true的项组成的数组。
    //forEach():对数组中的每一项进行给定函数。这个方法没有返回值。
    //map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
    //some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true.
    //最相似的every()和some(),他们用于查询数组中的项满足某个条件。
    //归并方法
    //reduce()和reduceRight()这两个方法都会迭代数组的所有项,然后构建一个最终返回值。
    var values = [1,2,3,4,5];
    var sum = values.reduce(function(prev,cur,index,array){
    return prev + cur ;
    })

    console.log(sum);//15


    //Date类型
    var now = new Date();
    //在调用Date构造函数而不传递参数的情况下,新创建的对象自动获取当前日期和时间。如果想根据特定的日期和时间创建日期对象,必须传入改日期的毫秒数,为了简化这个过程ECMAScript提供了两个方法:Date.parse()和Date.UTC().

    //Date.parse()方法接受一个表示日期的字符串参数,然后根据字符串返回相应日期的毫秒数。
    //Date.parse()有一个兼容性的bug
    //在谷歌上可以正确解析,而在ie与edge上缺解析不了,经查询是兼容性问题,只要把"-"替换为"/"就可以解决,如下

    //处理方式 f = new Date(Date.parse(viewValue.replace(/-/g,"/"))).getTime();
    /*
    RegExp类型(正则表达式)
    var expression = / pattern / flags ;
    其中的模式(pattern)部分可以任意简单或者复杂的正则表达式,
    g:表示全局(global)模式,即模式将被应用于所有字符串,而并非在发现第一个匹配项时,立即停止
    i:表示不区分大小写
    m:表示多行模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项
    列:
    */

    //正则表达式中使用的所有元字符必须转义
    //( [ ^ $ | ) ? * + . ] }
    /*匹配字符串中所有"at"的实例*/
    var pattern1 = /at/g ;
    /*匹配第一个"bat"或"cat",不区分大小写*/
    var pattern2 = /[bc]at/i;
    //正则单独写篇博客记录

    Function 类型
    每个函数包含两个非继承而来的方法:apply() 和call()。这两个方法的用途都是在特定的作用域中调用函数
    实际上等于设置函数体内this对象的值。首先,apply()方法接受两个参数:一个是在其中运行函数的作用域,另一个是参数数组,其中第二个参数可以是Array函数实例,也可以是arguments对象
    function sum(num1,num2){
    return num1+num2;
    }
    function callSum1(num1,num2){
    return sum.apply(this,arguments);
    }
    function callSum2(num1,num2){
    return sum.apply(this,[num1,num2])
    }
    call()方法,第一个参数传递this,其余的参数度传递给函数
    function callSum(num1,num2){
    return sum.call(this,num1,num2)
    }
    URI编码方式
    Global对象的encodeURI()和encodeURIComponent()方法可以对URI(Uniform Resource Identifiers,通用资源标识符)
    进行编码。他们的主要区别在于encodeURI()不会对本身属于URI中的特殊字符进行编码,例如冒号、正斜杠、问号和井号;而encodeURIComponent()则会对它发现的任何非标准字符进行编码
    var uri = "http://www.wrox.com/illegal value.htm#start";
    对应的解码decodeURI()和decodeURIComponent()

    Math对象
    Math.min()
    Math.max()
    Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数
    Math.floor()执行向下舍入,即他总是将数值向下舍入最接近的整数
    Math.round()四舍五入
    console.log(Math.ceil(25.9)) //26
    console.log(Math.ceil(25.1)) //26
    Math.random()方法返回大于等于0小于1的随机数
    其他方法
    Math.abs(num) //返回绝对值

  • 相关阅读:
    mysql网文收录
    centos7编译安装memcached
    计算机网络网文
    操作系统网文
    redis网文
    【Leetcode】746. Min Cost Climbing Stairs
    【Leetcode】198. House Robber
    【Leetcode】121. Best Time to Buy and Sell Stock
    【Leetcode】1. Two Sum
    函数的参数 2018-3-27
  • 原文地址:https://www.cnblogs.com/zhihou/p/9706813.html
Copyright © 2011-2022 走看看