js中如何定义 常量?

JavaScript016

js中如何定义 常量?,第1张

1.

定义一些常量,使用闭包,匿名函数实现常量的定义。

例如:

var

Class

=

(function()

{

var

UPPER_BOUND

=

100//定义了常量

var

Test={}

//

定义了一个静态方法

获取常量的方法

Test.getUPPER_BOUND=function()

{

return

UPPER_BOUND

}

return

Test

})()

用法:

var

k=Class.getUPPER_BOUND()

alert(k)//

2.多个常量的情况下:

var

Class

=

(function()

{

//

Private

static

attributes.

var

constants

=

{//定义了两个常量

UPPER_BOUND:

100,

LOWER_BOUND:

-100

}

var

Test={}

//

定义了一个静态方法

Test.getConstant=function(name){//获取常量的方法

return

constants[name]

}

return

Test

})()

用法:

var

k=Class.getConstant('UPPER_BOUND')

alert(k)

//排序算法

window.onload = function(){

    var array = [0,1,2,44,4,

                324,5,65,6,6,

                34,4,5,6,2,

                43,5,6,62,43,

                5,1,4,51,56,

                76,7,7,2,1,

                45,4,6,7,8]

    //var array = [4,2,5,1,0,3]

    array = sorting.shellSort(array)

    alert(array)

}

var sorting = {

    //利用sort方法进行排序

    systemSort: function(arr){

        return arr.sort(function(a,b){

            return a-b

        })

    },

    //冒泡排序

    bubbleSort: function(arr){

        var len=arr.length, tmp

        for(var i=0i<len-1i++){

            for(var j=0j<len-1-ij++){

                if(arr[j]>arr[j+1]){

                    tmp = arr[j]

                    arr[j] = arr[j+1]

                    arr[j+1] = tmp

                }

            }

        }

        return arr

    },

    //快速排序

    quickSort: function(arr){

        var low=0, high=arr.length-1

        sort(low,high)

        function sort(low, high){

            if(low<high){

                var mid = (function(low, high){

                    var tmp = arr[low]

                    while(low<high){

                        while(low<high&&arr[high]>=tmp){

                            high--

                        }

                        arr[low] = arr[high]

                        while(low<high&&arr[low]<=tmp){

                            low++

                        }

                        arr[high] = arr[low]

                    }

                    arr[low] = tmp

                    return low

                })(low, high)

                sort(low, mid-1)

                sort(mid+1,high)

            }

        }

        return arr

    },

    //插入排序

    insertSort: function(arr){

        var len = arr.length

        for(var i=1i<leni++){

            var tmp = arr[i]

            for(var j=i-1j>=0j--){

                if(tmp<arr[j]){

                    arr[j+1] = arr[j]

                }else{

                    arr[j+1] = tmp

                    break

                }

            }

        }

        return arr

    },

    //希尔排序

    shellSort: function(arr){

        console.log(arr)

        var h = 1

        while(h<=arr.length/3){

            h = h*3+1  //O(n^(3/2))by Knuth,1973

        }

        for( h>=1h=Math.floor(h/3)){

            for(var k=0k<hk++){

                for(var i=h+ki<arr.lengthi+=h){

                    for(var j=ij>=h&&arr[j]<arr[j-h]j-=h){

                        var tmp = arr[j]

                        arr[j] = arr[j-h]

                        arr[j-h] = tmp

                    }

                }

            }

        }

        return arr

    }

}

数组排序,你可以直接调用javascript原生自带的sort()方法,比如下面的例子:

// Array.prototype.sort() //原生自带的数组的排序方法;

var fruit = ['apples', 'bananas', 'Cherries'] //定义一个数组

fruit.sort()// ['Cherries', 'apples', 'bananas'] //按字母排序的结果

var scores = [1, 2, 10, 21] //定义一个数字排序,你发现其实还是按照字母序排列的

scores.sort()// [1, 10, 2, 21]

如果希望按照期望的数字排序。

scores.sort(function(a,b){return a-b})//这样的就可以了。结果为:21 10 2 1

var things = ['word', 'Word', '1 Word', '2 Words']

things.sort()// ['1 Word', '2 Words', 'Word', 'word']

// In Unicode, numbers come before upper case letters,

// which come before lower case letters.