ES3 的方法

    1. sort 不会按照数字大小进行排序
    2. 按照utf-16的编码顺序来进行排序 ```javascript var arr = [5, 3, 1, 2, 4]; var newArr = arr.sort(); // 返回原数组的引用, 不进行数组引用赋值。 console.log(newArr === arr);//true

    // 原地算法 // V8 arr.length <= 10 插入排序 // arr.length >10 快速排序 // Mozilla 归并排序 // Webkit c++ QSort 快速排序的理念

    var arr = [5, 3, 1000, 1, 6]; console.log(arr.sort());

    var strArr = [‘a’, ‘b’, ‘d’]

    var arr = [“Alibaba”,”Tencent”,”Baidu”,”NetEase”];

    /**

    • sort 不会按照数字大小进行排序
    • toString -> 数组元素 ->字符串
    • DOMString -> UTF-16字符串实现 -> 映射到String ->构建字符串
    • string -> UTF-16字符串 -> String/DOMString 的实例
    • 按照utf-16的编码顺序来进行排序 */

    /**

    • 为什么要转成字符串?
    • 如果是仅限一种类型的排序,sort 功能性太弱。
    • 字符串和字符编码集合结合在一起的排序规则
    • 可排序的范围就大 */

    // sort 一个参数(可选) // compareFunction(a, b);比较函数方法,FElement,SElement;

    var arr = [5, 1, 2, 3, 4, 6, 3, 3]; console.log(arr.sort(function(a, b){ // 如果再函数内部没有写规则就不会进行排序 // a => 1, b => 5; console.log(a, b); /**

    1. * return 负数 ab前面 升序
    2. * return 正数 ab后面 降序
    3. * return 0 不进行任何排序
    4. */

    }))

    // 非ASCII字符排序 localeCompare来比较 var arr = [“大”,”家”,”好”];

    console.log(arr.sort(function(a, b){ return a.localeCompare(b); }))

    // sort 的回调函数如果负载很高会影响sort的性能。 // 利用数组的映射可以修改。

    ```