zoukankan      html  css  js  c++  java
  • js基础知识1

    已经基本掌握:

    数据类型、选择语句、循环语句。

    比较生疏的部分:

    函数定义、嵌套, 数组, 原型函数

    以下是细节:

    --------------------------------

    函数部分

    --------------------------------

    1.基本方式

    function fun_name(){} //没有参数

    function fun_name(a, b){} //有参数

    2.很独特的定义方式,别的语言少见。
    定义方式:var f=new Function("x","y","return x*y");
    等价于: function f(x,y){ return x*y;}

    3.以函数作为参数的函数

    4.变量空间:全局 和 函数内部。

    局部和全局重名的变量,采用局部的。

    --------------------------------

    数组部分

    --------------------------------

    (1)定义方式:
    1)var a=new Array();
    2)var b=new Array(size); //定义初始大小,而不是固定就这么大。
    3)var c=new Array(d1,d2,..., dn); //如果仅用一个数字,会被当做第二种方法-数组大小,而不是数组元素。
    4)var d=[d1,d2, ... , dn];
    5)var e=[];

    (2)访问数组:
    1)[]运算符访问数组中的一个单元;
    2)a[0],可以读也可以写;
    3)索引从0开始;
    4)a[x]=n直接创建了数组中的一个单元,而且赋了值n。

    (3)length就是数组的最大坐标+1。

    这个值可写,也就是可以定义。
    如果定义的比原来小,则后面的被截掉,找不到了。
    如果比原来的大,则后面的同样没有定义。
    colors.length=2;


    colors[colors.length]="yellow"; //相当于在后面又追加了一个元素。不覆盖前面的元素。具有可扩展性代码。good。
    colors[colors.length]="brown"; //同上。不用修改就可以继续使用。

    (4)转换数组为字符串

    <script>
    var colors=["red","blue","green"];

    function w(a){document.write( a + "<br />");}

    w(colors.join(" || "));

    alert(colors.toString()); //输出整个数组为字符串,逗号隔开
    alert(colors.valueOf());
    alert(colors);

    alert(colors.join(",")); //定义数组元素之间的分隔符
    alert(colors.join("||"));

    </script>

    (5)堆栈操作:先进后出

    push压入数组元素,
    pop取数据,从最后的一个元素取。

    (6)队列操作:先进先出

    push压入数组元素,

    shift时先进先出。

    (7)排序操作

    function w(a){document.write( a + "<br />");}

    var values=[0,100,5,10,15];
    values.sort(); //排序操作,从小到大
    w(values);


    values.reverse(); //反序
    w(values);

    结果:

    0,10,100,15,5
    15,10,5,100,0

    note:感觉sort很诡异,根本不是大小排序。

    -------------

    查了下原型  arrayobj.sort(sortfunction)  

    参数  

    arrayObj
    必选项。任意 Array 对象。


    sortFunction
    可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,
    那么元素将按照 ASCII 字符顺序进行升序排列。


    说明
    sort 方法将 Array 对象进行适当的排序;
    在执行过程中并不会创建新的 Array 对象。

    如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:

    负值,如果所传递的第一个参数比第二个参数小。
    零,如果两个参数相等。
    正值,如果第一个参数比第二个参数大。

    ------------

     

    7.1 改进版:自己写比较的规则,用函数表示。

    function w(a){document.write( a + "<br />");}


    function compare2(value1, value2){ //从大到小排列

    a=value1;
    b=value2;


    if( a < b ){
    return 1;
    } else if( a < b ){
    return -1;
    } else{
    return 0;
    }
    }


    var values=[0,100,5,-10,15];
    values.sort(compare2); //排序操作,从小到大
    w(values);

    结果:100,15,5,0,-10

    符合预期。

    7.2 再搞一个按绝对值排序的,只需要将上面的红色部分替换即可。

    a=Math.pow(value1,2);
    b=Math.pow(value2,2);

    结果:100,15,-10,5,0

    符合预期。

    (8)数组操作
    连接
    colors2=colors.concat("yellow",["red","black"]);

    截取
    colors=colors.slice(1,4); //截取从1到3,不取4,作为新的数组;

    splice()
    完整用法:splice(开始位置, 删除个数, 插入元素);

    删除 splice(0,2)
    插入 splice(2,0,"red","green")
    替换 splice(2,1,"red","green")

    refer

    1.数学函数:http://fyb613.blog.163.com/blog/static/325460922009412102345449/

    2.sort()方法:http://www.jb51.net/article/4168.htm

  • 相关阅读:
    Linux 线程池的简单实现
    m3u8(HLS) 抓包
    一个面试问题的思考
    简单实现无需密码 sudo
    转: NAT 穿透
    一个平均分配算法
    raft 算法扫盲
    20210615 JVM 优化
    20210614. 并发编程
    20210606 Java 并发编程之美
  • 原文地址:https://www.cnblogs.com/dawnEve/p/js.html
Copyright © 2011-2022 走看看