JavaScript 基礎(二) – 建立 function 物件的方法, String物件, Array物件

klvchen發表於2019-01-21

建立 function 物件的兩種方法:

方式一(推薦)

  function func1(){
        alert(123);
        return 8
    }

    var ret = func1()
    alert(ret)

方式二:var func2 = new Function(“引數1″, “引數n”,”函式體”);

    var add = new Function("a", "b", "alert(a+b)")
    add(1,2);
    alert(add.length)

arguments 物件

獲得引數的個數

  var ret=0;
  function add(){
    alert(arguments.length)
  }
  add(1,2,3,4,5)

獲得引數的個數和值的總額

    var ret = 0;
    function add(){
        console.log(arguments.length);
        console.log(arguments);

        for (var i in arguments){
            ret += arguments[i]
        }
        return ret;
    }

    alert(add(1,2,3,4))

控制丟擲異常

    function func2(){
        if (arguments.length != 3){
            throw new Error("param should be 3")
        }
    }

    func2(1,2,3,4)

自執行函式

    (function(arg){console.log(arg);})(`123`)

instanceof

用於判斷一個變數是否某個物件的例項

    var s = "hello";
    var i = 8;

    alert(typeof(s));
    alert(typeof(i));

    var s2 = new String("hello2");
    alert(typeof(s2))
    alert(s2 instanceof String);

    var n = new Number(2);
    alert(typeof(n))
    alert(n instanceof Number);

在JavaScript中除了null和undefined以外其他的資料型別都被定義成了物件,也可以用建立物件的方法定義變數,String、Math、Array、Date、RegExp都是JavaScript中重要的內建物件,在JavaScript程式大多數功能都是通過物件實現的

JavaScript 有 11 種內建物件, 包括:
Array ,String , Date, Math, Boolean, Number Function, Global, Error, RegExp , Object

String物件

建立字串物件:

    var s = "hello";
    var s2 = new String("hello2");

    alert(s);
    alert(s2);

// String 物件 length 方法
    alert(s.length);

// 遍歷字串
    for (var i in s){
        console.log(s[i])
    }

各種方法

// 用於把字串顯示為斜體
    document.write(s.italics());

// 用於把字串顯示為粗體
    document.write(s.bold());

// 用於建立 HTML 錨
    document.write(s.anchor("klvchen"));

// 用於把字串轉化成大寫
    console.log(s.toUpperCase());

// 用於把字串轉化成小寫
    console.log(s.toLowerCase());

// charAt返回index位置的字元
    console.log(s.charAt(3));

// charCodeAt返回index位置的Unicode編碼
     console.log(s.charCodeAt(3));

// search返回匹配字串的首字元位置索引
    console.log(s.search("l"));

// match返回匹配字串的陣列,如果沒有匹配則返回null
    console.log(s.match("l"));

    console.log(s.match("l")[0]);        // 取陣列裡面的值
    console.log(s.match("l")[1]);

// 替換子字串
    console.log(s.replace("e","E"));

// 分割字串
    console.log(s.split("e"));

// 連線字串
    console.log(s.concat(" world"));

// 擷取子字串,右不包括
    console.log(s.substr(1, 1));
    console.log(s.substring(1, 4));
    console.log(s.slice(1, -1));

// 返回指定第一個元素的位置
    console.log(s.indexOf("l"));

Array物件

建立陣列物件

// 方法一:
    var arr = [1,2,3,4];

// 方法二:
    var arr2 = new Array(1,2,3,4);
    //var arr2 = new Array(5, "hello", true, [1,2]);

// 輸出陣列物件的長度
    console.log(arr.length);
    console.log(arr2.length);


// 定義一個長度為3的陣列,陣列的值因未定義則預設為空
    var arr4 = new Array(3);
    console.log(arr4[0]);
    console.log(arr4[1]);
    console.log(arr4[2]);

// 陣列是可變成的
    var arr5 = new Array(3);
    arr5[5] = 10;
    console.log(arr5.length);

// 二維陣列
  var arr6 = new Array(6, "klvchen", true, [1,2]);
  alert(arr6[3][0]);

// 連線陣列-join方法
  ret = ["hello", "world"].join(" &&& ");
  alert(ret);

// push pop這兩個方法模擬的是一個棧操作, push 壓棧, pop彈棧   
  var arr7 = [1, 4, 6];
  arr7.push(13);
  console.log(arr7);
  var ret = arr7.pop();
  alert(ret);

// unshift shift。unshift是將value值插入到陣列x的開始, shift是將陣列x的第一個元素刪除
  var arr7 = [1, 4, 6];
  arr7.unshift(45);
  console.log(arr7);
  arr7.shift();
  console.log(arr7);

// 陣列排序。reverse 作用為顛倒陣列元素;sort 作用為排序陣列元素
    var arr8 = [11, 5, 3, 7, 100];
    arr8.reverse();
    console.log(arr8);
    console.log(arr8.sort());

// 按照從小到大排序
    var arr8 = [11, 5, 3, 7, 100];

    function mysort(a,b){
        if (a>b){
            return 1;
        }else if(a<b){
            return -1;
        }else{
            return 0;
        }
    }

    function mysort2(a,b){
        return a-b;
    }

    console.log(arr8.sort(mysort));
    console.log(arr8.sort(mysort2));

相關文章