09.初識(shí)javascript

概述

JavaScript是世界上最流行的腳本語(yǔ)言,是一種運(yùn)行在瀏覽器中的解釋型的編程語(yǔ)言,能夠?qū)崿F(xiàn)跨平臺(tái)、跨瀏覽器。雖然只是十多天時(shí)間的產(chǎn)物,并且有很多的缺陷和陷阱,但也造就了JavaScript的靈活和強(qiáng)大。隨著Node.js的興起,JavaScript已經(jīng)從單純實(shí)現(xiàn)前端互動(dòng),發(fā)展到可以全棧實(shí)現(xiàn)整個(gè)應(yīng)用。尤其是在移動(dòng)互聯(lián)網(wǎng)蓬勃發(fā)展以及應(yīng)用追求極致用戶體驗(yàn)的今天,JavaScript更是必須要重視和掌握的。

變量

使用var關(guān)鍵字進(jìn)行變量的聲明,聲明的同時(shí)也可以進(jìn)行賦值。變量的聲明只能有一次,但賦值可以有多次。如果只聲明變量,但是變量沒(méi)有被賦值,此時(shí)變量的值為undefined。

JavaScript變量的類型取決于右側(cè)的對(duì)象。

var variable_name1 = 5;
var variable_name2 = 5.3;
var variable_name3 = false;
var variable_name4 = 'zhangsan';

變量的作用域

JavaScript沒(méi)有塊級(jí)作用域

java:

if(true) {
    int a = 1;
}
System.out.println(a); // 編譯錯(cuò)誤,超出作用域

javascript:

if(true){
    var a = 1;
}
console.log(a); // 1 JavaScript沒(méi)有塊級(jí)作用域

JS中的六大數(shù)據(jù)類型

js中有六種數(shù)據(jù)類型,包括五種基本數(shù)據(jù)類型(Number,String,Boolean,Undefined,Null),和3種引用數(shù)據(jù)類型(Object,Function,Array)。

基本數(shù)據(jù)類型

1.Number類型

Number類型包含整數(shù)和浮點(diǎn)數(shù)(浮點(diǎn)數(shù)數(shù)值必須包含一個(gè)小數(shù)點(diǎn),且小數(shù)點(diǎn)后面至少有一位數(shù)字)兩種值。

2.String類型

單引號(hào)或雙引號(hào)擴(kuò)起來(lái)的字符集合

3.Boolean類型

該類型只有兩個(gè)值,true和false

4.Undefined類型

只有一個(gè)值,即undefined值。使用var聲明了變量,但未給變量初始化值,那么這個(gè)變量的值就是undefined。

5.Null類型

Null類型被看做空對(duì)象指針,Null類型也是空的對(duì)象引用。

三大引用類型

1.Object類型

我們看到的大多數(shù)類型值都是Object類型的實(shí)例,創(chuàng)建Object實(shí)例的方式有兩種。

第一種是使用new操作符后跟Object構(gòu)造函數(shù),如下所示

var person = new Object();

person.name = "Micheal";

person.age = 24;

第二種方式是使用對(duì)象字面量表示法,如下所示

var person = {

name : "Micheal",

age : 24

};

alert(person.name);

2.Array類型

數(shù)組的每一項(xiàng)可以用來(lái)保存任何類型的數(shù)據(jù),也就是說(shuō),可以用數(shù)組的第一個(gè)位置來(lái)保存字符串,第二個(gè)位置保存數(shù)值,第三個(gè)位置保存對(duì)象....另外,數(shù)組的大小是可以動(dòng)態(tài)調(diào)整的。

創(chuàng)建數(shù)組的基本方式有兩種

第一種是使用Array構(gòu)造函數(shù),如下所示

var colors = new Array("red","blue","yellow");

第二種是使用數(shù)組字面量表示法,如下所示

var colors = ["red","blue","yellow"];

3 Function類型

每個(gè)函數(shù)都是Function類型的實(shí)例,而且都與其他引用類型一樣具有屬性和方法。函數(shù)通常是使用函數(shù)聲明語(yǔ)法定義的,如下所示

function sum(num1,num2){

return num1 + num2;

};

這和使用函數(shù)表達(dá)式定義函數(shù)的方式相差無(wú)幾。

var sum = function (num1,num2){

return num1 + num2;

};

var result = sum(5,8);
alert(result);

typeof 操作符

由于js中的變量是弱類型的,所以它提供了一種檢測(cè)當(dāng)前變量的數(shù)據(jù)類型的方法,也就是typeof關(guān)鍵字.

typeof 123   //Number

typeof 'abc'  //String

typeof true //Boolean

typeof undefined //Undefined

typeof null //Object

typeof { } //Object

typeof [ ] //Object

js的三種輸出方式

/*  
             * 控制瀏覽器彈出一個(gè)提示框  
             */  
            alert("Hello JavaScript");  
              
            /*  
             * 控制瀏覽器在頁(yè)面中輸出一個(gè)內(nèi)容  
             * document.write()向body中寫(xiě)一個(gè)內(nèi)容  
             */  
            document.write("看我出來(lái)不???");  
              
            /*  
                向控制臺(tái)輸出一個(gè)內(nèi)容  
             * */  
            console.log("你看我在哪出來(lái)~~~");  

js編寫(xiě)的位置

<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="UTF-8">  
        <title></title>  
        <!--可以將JS代碼編寫(xiě)到script標(biāo)簽中-->  
        <!--<script type="text/javascript">  
              
            alert("hello");  
              
        </script>-->  
          
        <!--  
            還可以將JS代碼編寫(xiě)到外部的js文件中,然后通過(guò)script標(biāo)簽來(lái)引入外部的文件  
            將JS代碼編寫(xiě)到外部文件中,可以在不同的頁(yè)面中引入相同的JS代碼,  
                方便后期的維護(hù),并且寫(xiě)在外部文件中可以使用瀏覽器的緩存,加快訪問(wèn)速度提高用戶體驗(yàn)  
                  
            如果使用script來(lái)引入外部文件,則它就不能在編寫(xiě)任何的JS代碼了  ,  
                如果還需要編寫(xiě)則需要?jiǎng)?chuàng)建一個(gè)新的script標(biāo)簽  
        -->  
          
        <script type="text/javascript" src="js/script.js"></script>  
        <script type="text/javascript">  
            alert("我是內(nèi)部的JS代碼");  
        </script>  
    </head>  
    <body>  
          
          
        <!-- 
            將JS代碼編寫(xiě)到標(biāo)簽的屬性中,屬于結(jié)構(gòu)與行為耦合,不方便后期的維護(hù),不推薦使用 
        -->  
          
        <!-- 
            可以將JS代碼編寫(xiě)到標(biāo)簽的指定屬性中 
        -->  
        <button onclick="alert('你點(diǎn)我干嘛~~~~');">點(diǎn)我一下</button>  
          
        <!-- 
            可以將JS代碼編寫(xiě)到超鏈接的href中 
        -->  
        <a href="javascript:alert('討厭?。?!');">你也點(diǎn)我一下</a>  
        <br /><br />  
        <a href="javascript:;">你也點(diǎn)我一下</a>  
          
    </body>  
</html>  

練習(xí)

求100以內(nèi)的偶數(shù)和

js字符串

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript">

        /*
         * 
         * 在解析器的底層,保存字符串時(shí),實(shí)際上是以字符數(shù)組的形式保存的
         *  所以字符串的操作方法和數(shù)組都是非常相似的
         * 
         */


        var str = "Hello neusoft";

        //console.log(str.length);
        //console.log(str[6]);
        /*
         * length可以用來(lái)獲取一個(gè)字符串的長(zhǎng)度
         */

        /*
         * charAt()
         *  - 可以根據(jù)索引來(lái)獲取指定位置的字符
         * 
         * charCodeAt()
         *  - 可以根據(jù)索引來(lái)獲取指定位置的字符的字符編碼
         * 
         * String.fromCharCode()
         *  - 可以根據(jù)字符編碼來(lái)獲取字符
         */
        str = "中AaHello neusoft";

        var result = str.charAt(0);

        result = str.charCodeAt(0);

        result = String.fromCharCode(20013);

        //console.log(result);

        /*
         * concat()
         *  - 可以用來(lái)連接兩個(gè)或多個(gè)字符串
         *  - 作用+ 一樣
         */
        str = "hello";
        var str2 = "world";

        result = str.concat(str2,"你好","天氣好","吃的好");

        /*
         * indexOf()
         *  - 檢索指定字符串在當(dāng)前字符串中的位置
         *  - 參數(shù):
         *      第一個(gè)參數(shù),要查詢的字符串
         *      第二個(gè)參數(shù),查找開(kāi)始的位置
         * 
         *  - 返回值:
         *      默認(rèn)會(huì)返回字符串第一次出現(xiàn)的位置的索引
         *      如果沒(méi)有找到該內(nèi)容,則返回-1
         * 
         * lastIndexOf()
         *  - 檢索指定字符串在當(dāng)前字符串中的位置
         *  - 該方法和indexOf()一樣,不同的是indexOf()是從前往后找
         *      而lastIndexOf()是從后往前找
         */
        str = "Helo neusoft";

        //result = str.indexOf("a");
        //result = str.indexOf("l",3);
        result = str.lastIndexOf("l",5);

        /*
         * slice()
         *  - 可以用來(lái)截取一個(gè)字符中的內(nèi)容
         *  - 參數(shù):
         *      第一個(gè)參數(shù),截取開(kāi)始位置的索引(包括開(kāi)始位置)
         *      第二個(gè)參數(shù),截取結(jié)束位置的索引(不包括結(jié)束位置)
         *      - 可以接收一個(gè)負(fù)值作為參數(shù),如果是負(fù)值,則從后往前數(shù)
         *      - 也可以省略第二個(gè)參數(shù),如果省略則一直截取到最后
         */

        str = "Hello neusoft";

        result = str.slice(0,5);

        result = str.slice(5);

        /*
         * substring()
         *  - 用來(lái)截取字符串的
         *  - 參數(shù):
         *      第一個(gè)參數(shù),截取開(kāi)始位置的索引(包括開(kāi)始位置)
         *      第二個(gè)參數(shù),截取結(jié)束位置的索引(不包括結(jié)束位置)
         *      - 該方法不接收負(fù)值,如果傳遞了一個(gè)負(fù)值,則默認(rèn)會(huì)設(shè)置為0
         *      - 該方法中如果第二個(gè)參數(shù)小于第一個(gè),則會(huì)調(diào)整參數(shù)的位置
         *  
         */
        str = "Hello neusoft";
        result = str.substring(6,0);

        /*
         * substr()
         *  - 用來(lái)截取字符串
         *  - 參數(shù):
         *      第一個(gè)參數(shù),截取開(kāi)始位置的索引
         *          - 可以是負(fù)值,如果是負(fù)值從后往前數(shù)
         *      第二個(gè)參數(shù),截取的個(gè)數(shù)
         */

        str = "Hello neusoft";
        result = str.substr(-3,2);

        //console.log(result);

        /*
         * split()
         *  - 可以將一個(gè)字符串拆分為一個(gè)數(shù)組
         *  - 它需要一個(gè)字符串作為參數(shù),將會(huì)根據(jù)該字符串對(duì)字符串進(jìn)行拆分
         *      并且將拆分的后的值保存到一個(gè)數(shù)組中返回
         */

        str = "孫悟空@豬八戒@沙和尚@唐僧";

        result = str.split("@");

        //console.log(Array.isArray(result));
        //console.log(result);

        /*
         * toLowerCase()
         *  - 將一個(gè)字符串轉(zhuǎn)換為小寫(xiě)
         * toUpperCase()
         *  - 將一個(gè)字符串轉(zhuǎn)換為大寫(xiě)
         */
        str = "abcdefg";

        result = str.toUpperCase();

        str = "ABCDEFG";

        result = str.toLowerCase();

        console.log(result);

        var myStr = "I,love,you,Do,you,love,me";
        var replacedStr = myStr.replace("love","hate");//"I,hate,you,Do,you,love,me";

        //replace默認(rèn)只替換第一次查找到的,想要全局替換,需要置上正則全局標(biāo)識(shí),如
        var myStr = "I,love,you,Do,you,love,me";
        var replacedStr = myStr.replace(/love/g,"hate");//"I,hate,you,Do,you,hate,me"
    </script>
</head>
<body>
</body>
</html>

字符串練習(xí)

編寫(xiě)一個(gè)程序,將某個(gè)字符串反轉(zhuǎn)

數(shù)組

數(shù)組簡(jiǎn)介

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            /*
             * 數(shù)組(Array)
             *  - 數(shù)組也是一個(gè)對(duì)象,功能和普通對(duì)象(Object)的功能類似的
             *  - 數(shù)組中也可以保存不同的元素,不同的是普通對(duì)象是通過(guò)一個(gè)字符串作為屬性名來(lái)操作屬性的,
             *      而數(shù)組是通過(guò)索引來(lái)操作元素的。
             *  - 索引(index)
             *      - 索引就是從0開(kāi)始的整數(shù)
             *  - 數(shù)組比普通對(duì)象的存儲(chǔ)效率要高,在開(kāi)發(fā)中我們經(jīng)常使用數(shù)組來(lái)存儲(chǔ)一些數(shù)據(jù)
             */
            
            //創(chuàng)建一個(gè)數(shù)組對(duì)象
            var arr = new Array();
            
            //使用typeof檢查一個(gè)數(shù)組對(duì)象時(shí)會(huì)返回object
            //console.log(typeof arr);
            
            /*
             * 向數(shù)組中添加元素
             *  - 語(yǔ)法:
             *      數(shù)組[索引] = 值;
             */
            arr[0] = 10;
            arr[1] = 20;
            arr[2] = 30;
            arr[3] = 40;
            arr[4] = 30;
        
            
            /*
             * 讀取數(shù)組中的元素
             *  - 語(yǔ)法:
             *      數(shù)組[索引]
             */
            
            //如果讀取一個(gè)數(shù)組中沒(méi)有的元素,會(huì)返回undefined
            //console.log(arr[4]);
            
            //獲取數(shù)組的長(zhǎng)度
            /*
             * length
             *  - length屬性可以獲取或設(shè)置數(shù)組的長(zhǎng)度
             *  - 對(duì)于連續(xù)的數(shù)組通過(guò)length屬性獲取到的就是數(shù)組中元素的個(gè)數(shù)
             */
            //console.log(arr.length);//獲取數(shù)組的長(zhǎng)度
            
            //修改數(shù)組的length屬性
            //如果將長(zhǎng)度修改為小于之前的長(zhǎng)度的值,則多余的部分會(huì)被刪除
            arr.length = 5;
            
            //如果將長(zhǎng)度修改為大于之前的長(zhǎng)度的值,則會(huì)數(shù)組中會(huì)創(chuàng)建出空的元素
            //arr.length = 10;
            
            //向數(shù)組的最后添加一個(gè)元素
            //語(yǔ)法:數(shù)組[數(shù)組.length] = 值;
            arr[arr.length] = 55;
            arr[arr.length] = 75;
            arr[arr.length] = 85;
            
            console.log(arr);
    
        </script>
    </head>
    <body>
    </body>
</html>

數(shù)組字面量表達(dá)方式(推薦)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            /*
             * 數(shù)組的字面量
             */
            //var arr = new Arry();
            var arr = [] ;

            /*
             * 使用字面量,可以在創(chuàng)建數(shù)組的同時(shí),向數(shù)組中添加元素
             * 語(yǔ)法:
             *  var 數(shù)組 = [元素1,元素2...元素N];
             */
            arr = [1,2,3,4,5,6,7];
            
            //console.log(arr[6]);
            
            arr = new Array(1,2,3,4,5,6,7);
            
            arr = [10];//創(chuàng)建一個(gè)數(shù)組并向數(shù)組中添加一個(gè)元素
            
            arr = new Array(10);//創(chuàng)建一個(gè)長(zhǎng)度為10的數(shù)組
            
            //console.log(arr.length);
            
            /*
             * 在數(shù)組中可以保存任意類型的元素
             */
            arr = [1,"hello",true,null,undefined,{name:"孫悟空"},function(){}];
            
            //console.log(arr[5].name);
            //console.log(arr[6]);
            
            
            //數(shù)組中也可以保存數(shù)組,如果數(shù)組中保存的依然是數(shù)組,則我們稱這個(gè)數(shù)組為二維數(shù)組
            arr = [
                    [1,2,3],
                    [4,5,6],
                    [5,6,7]
                ];
                
            console.log(arr[0][1]); 
            
        </script>
    </head>
    <body>
    </body>
</html>

數(shù)組的常用方法

push(),pop(),unshift(),shift()

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            
            /*
             * 創(chuàng)建一個(gè)數(shù)組
             */
            var arr = ["孫悟空","豬八戒","沙和尚"];
            
            /*
             * push()
             *  - 該方法可以用來(lái)向數(shù)組的末尾添加新的元素,并返回?cái)?shù)組的新的長(zhǎng)度
             */
            
            //console.log(arr);
            
            var result = arr.push("唐僧","白骨精","蜘蛛精");
            
            //console.log(arr);
            //console.log("result = "+result);
            
            /*
             * pop()
             *  - 用來(lái)刪除并返回?cái)?shù)組的最后一個(gè)元素
             *  - 元素刪除以后,會(huì)自動(dòng)修正數(shù)組的長(zhǎng)度
             */
            result = arr.pop();
            result = arr.pop();
            
            //console.log(arr);
            //console.log("result = "+result);
            
            /*
             * unshift()
             *  - 向數(shù)組的最前邊添加元素,并返回新的長(zhǎng)度
             */
            result = arr.unshift("牛魔王","鐵扇公主");
            
            console.log(arr);
            //console.log("result = "+result);
            
            /*
             * shift()
             *  - 刪除數(shù)組最前邊的元素,并返回被刪除的元素
             *  - 刪除完元素以后,會(huì)自動(dòng)調(diào)整數(shù)組的長(zhǎng)度
             */
            result = arr.shift();
            result = arr.shift();
            
            
            console.log(arr);
            console.log("result = "+result);
            console.log(arr.length);
            
        </script>
    </head>
    <body>
    </body>
</html>

遍歷數(shù)組方式一

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            
            /*
             * 創(chuàng)建一個(gè)數(shù)組
             */
            
            var arr = ["孫悟空","豬八戒","沙和尚","唐僧","白骨精","蜘蛛精"];
            
            /*
             * 遍歷數(shù)組
             *  - 遍歷數(shù)組就是指將數(shù)組中的每一個(gè)元素都獲取到
             *  - 一般情況下遍歷數(shù)組都是使用for循環(huán)來(lái)遍歷
             */
            
            for(var i = 0 ;  i < arr.length ; i++ ){
                console.log(arr[i]);
            }
            
            
            
            
        </script>
    </head>
    <body>
    </body>
</html>

遍歷數(shù)組方式二:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            
            var arr = ["孫悟空","豬八戒","沙和尚","唐僧"];
            
            /*
             * 也可以使用forEach()來(lái)遍歷數(shù)組
             *  forEach()中需要一個(gè)函數(shù)作為參數(shù)
             *  - 像這種由我們定義而不由我們調(diào)用的函數(shù),我們稱為回調(diào)函數(shù)
             *  - forEach()中的回調(diào)函數(shù),由瀏覽器調(diào)用,
             *      數(shù)組中有幾個(gè)元素函數(shù)就會(huì)被調(diào)用幾次,
             *      每次遍歷到一個(gè)元素都會(huì)調(diào)用一次函數(shù),瀏覽器會(huì)通過(guò)實(shí)參的形式來(lái)將遍歷到內(nèi)容傳遞進(jìn)函數(shù)
             *  - 瀏覽器在調(diào)用回調(diào)函數(shù)傳遞了三個(gè)實(shí)參:
             *      第一個(gè)參數(shù):正在遍歷的元素
             *      第二個(gè)參數(shù):正在遍歷的元素的索引
             *      第三個(gè)參數(shù):正在遍歷的數(shù)組對(duì)象
             * 
             *  - forEach()方法不支持IE8及以下的瀏覽器,所以如果需要兼容IE8則不要使用
             *      
             */
            arr.forEach(function(value , index , obj){
                
                console.log("value = "+value + "  index = "+index+" obj = "+obj);
                
            });
            
        </script>
    </head>
    <body>
    </body>
</html>

數(shù)組方法:slice(),splice():

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            
            var arr = ["孫悟空","豬八戒","沙和尚","唐僧"];
            
            /*
             * slice()
             *  - 可以用來(lái)截取數(shù)組中的指定元素
             *  - 參數(shù):
             *      第一個(gè)參數(shù),截取開(kāi)始的位置(包括開(kāi)始的位置)
             *      第二個(gè)參數(shù),截取結(jié)束的位置(不包括結(jié)束的位置)
             *  - 該方法不會(huì)影響到原數(shù)組,而是將截取到的內(nèi)容封裝為一個(gè)新的數(shù)組返回
             *  - 可以傳遞一個(gè)負(fù)數(shù)作為參數(shù),如果是負(fù)數(shù),則從后往前數(shù)
             *      -1 表示 倒數(shù)第一 
             *      -2 表示 倒數(shù)第二
             *  - 如果省略第二個(gè)參數(shù),則從開(kāi)始位置一直截取到最后
             */
            
            var result = arr.slice(1,3);
            
            result = arr.slice(1,-2);
            
            result = arr.slice(1);
            
            //console.log(result);
            
            /*
             * splice()
             *  - 可以用來(lái)刪除數(shù)組中的元素,并添加新元素
             *  - 它會(huì)影響到原數(shù)組,一旦執(zhí)行原數(shù)組中的元素將會(huì)被刪除
             *  - 參數(shù):
             *      第一個(gè)參數(shù),開(kāi)始位置的索引
             *      第二個(gè)參數(shù),表示刪除的個(gè)數(shù)
             *      第三個(gè)參數(shù),這個(gè)方法還可以傳遞多個(gè)參數(shù)
             *          在第三個(gè)參數(shù)以后,可以跟多個(gè)元素作為參數(shù),
             *          這些元素將會(huì)被插入到開(kāi)始位置之前的位置
             *  - 它會(huì)將被刪除的元素作為返回值返回
             *      
             */
            
            arr = ["孫悟空","豬八戒","沙和尚","唐僧"];
            
            //result = arr.splice(0,1);
            
            //牛魔王替換 索引為0的元素
            //result = arr.splice(0,1,"牛魔王");
            
            //arr.splice(2,1,"牛魔王","紅孩兒","二郎神");
            
            arr.splice(2,0,"牛魔王","紅孩兒","二郎神");
            
            console.log(arr);
            
            
        </script>
    </head>
    <body>
    </body>
</html>

練習(xí) 去除調(diào)用數(shù)組中重復(fù)的數(shù)字


<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            
            //創(chuàng)建一個(gè)數(shù)組
            var arr = [1,2,3,1,1,1,4,2,3,5];
            
            //去除調(diào)用數(shù)組中重復(fù)的數(shù)字
            //獲取數(shù)組中的數(shù)字
            for(var i=0 ; i<arr.length ; i++){
                //console.log(arr[i]);
                //再次遍歷數(shù)組
                for(var j=i+1 ; j<arr.length ; j++){
                    //console.log("----->" + arr[j]);
                    //比較兩個(gè)數(shù)字是否相等
                    if(arr[i] == arr[j]){
                        //進(jìn)入判斷,證明兩個(gè)數(shù)字重復(fù),則刪除arr[j]
                        arr.splice(j,1);
                        //需要在此位置在比較一次
                        j--;
                    }
                }
            }
            
            console.log(arr);
            
        </script>
    </head>
    <body>
    </body>
</html>


數(shù)組的其他方法

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            
            var arr = ["孫悟空","豬八戒"];
            var arr2 = ["白骨精","蜘蛛精"];
            var arr3 = ["太上老君","如來(lái)佛祖"];
            
            /*
             * concat()
             *  - 可以用來(lái)連接兩個(gè)或多個(gè)數(shù)組
             *  - 不會(huì)影響原數(shù)組,而是將新的數(shù)組的返回
             *  - 可以將多個(gè)數(shù)組作為concat參數(shù)傳遞,也可以傳遞單個(gè)的元素
             */
            var result = arr.concat(arr2 , arr3 , "唐僧");
            
            //console.log(result);
            
            /*
             * join()
             *  - 可以將數(shù)組中的所有的元素連接為一個(gè)字符串
             *  - 該方法可以接收一個(gè)字符串作為參數(shù),這個(gè)字符串將會(huì)將會(huì)作為連接符來(lái)連接元素
             *      如果不傳,默認(rèn)使用,
             */
            arr = ["孫悟空","豬八戒","沙和尚"];
            
            result = arr.join("@-@");
            
            //console.log(result);
            
            /*
             * reverse()
             *  - 該方法可以用來(lái)反轉(zhuǎn)數(shù)組
             *  - 前邊的去后邊,后邊的去前邊
             *  - 它會(huì)影響到原數(shù)組,直接在原數(shù)組上反轉(zhuǎn)
             */
            
            //arr.reverse();
            
            //console.log(arr);
            
            /*
             * sort()
             *  - 可以用來(lái)對(duì)數(shù)組中的元素進(jìn)行排序
             *  - sort()會(huì)影響到原數(shù)組
             *  - 默認(rèn)它會(huì)按照元素的Unicode編碼進(jìn)行排序
             *  - 如果希望使用sort對(duì)一個(gè)數(shù)字型的數(shù)組進(jìn)行排序可能會(huì)得到不可預(yù)期的結(jié)果
             *      因?yàn)樗瑯右矔?huì)按照數(shù)字的Unicode編碼進(jìn)行排序
             *  - 我們也可以自己來(lái)指定排序的規(guī)則
             * 
             */
            var arr4 = ["a","c","b","e","d","f"];
            
            arr4.sort();
            
            //arr4 = [2,3,10,5,4,6];
            
            
            
            /*
             * 如果需要自定義排序規(guī)則,需要將一個(gè)函數(shù)作為參數(shù)傳遞給sort()方法
             *  函數(shù)的結(jié)構(gòu):function(a , b){}
             *  
             * 瀏覽器會(huì)多次以數(shù)組中的元素作為實(shí)參來(lái)調(diào)用該函數(shù),
             *  a和b具體是誰(shuí)不確定,但是a一定是在b前邊
             * 瀏覽器將會(huì)根據(jù)函數(shù)的返回值,來(lái)決定兩個(gè)元素是否交互位置
             *  如果返回一個(gè)大于0的值,則兩個(gè)元素互相交換位置
             *  如果返回一個(gè)等于0的值,則證明兩個(gè)元素相等,位置不變
             *  如果返回一個(gè)小于0的值,兩個(gè)元素的位置也不變
             * 
             */
            
            arr4 = [10,4,3,5,2];
            
            arr4.sort(function(a,b){
                
                /*//升序  小 ---> 大
                if(a > b){
                    //交換位置
                    return 1;
                }else if(a == b){
                    return 0;
                }else{
                    return -1;
                }*/
                
                //降序 大 ---> 小
                /*if(a > b){
                    //交換位置
                    return -1;
                }else if(a == b){
                    return 0;
                }else{
                    return 1;
                }*/
                
                //如果希望升序排列,則 返回 a-b
                //return a - b;
                
                //如果希望降序排列,則 返回 b-a
                return b - a;
                
            });
            
            console.log(arr4);
            
        </script>
    </head>
    <body>
    </body>
</html>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,546評(píng)論 0 13
  • 第一章: JS簡(jiǎn)介 從當(dāng)初簡(jiǎn)單的語(yǔ)言,變成了現(xiàn)在能夠處理復(fù)雜計(jì)算和交互,擁有閉包、匿名函數(shù), 甚至元編程等...
    LaBaby_閱讀 1,759評(píng)論 0 6
  • JS基礎(chǔ)講解 JavaScript組成ECMAScript:解釋器、翻譯DOM:Document Object M...
    FConfidence閱讀 621評(píng)論 0 1
  • ?理智、清醒,是我們?cè)诩姅_人世間應(yīng)該保持的思維?? 圖|薛之謙 文|豬小鬧 薛之謙火了。 薛之謙出事了。 薛之謙人...
    豬小鬧閱讀 886評(píng)論 1 2
  • 皇上已經(jīng)封賞大功臣二十多人,其余的人日夜?fàn)帗尮冢荒軟Q定高下,所以未能進(jìn)行封賞。 皇上在洛陽(yáng)南宮,從橋上望見(jiàn)一些...
    陌魚(yú)岸涼閱讀 588評(píng)論 0 1

友情鏈接更多精彩內(nèi)容