創建 function 對象的兩種方法: 方式一(推薦) 方式二:var func2 = new Function("參數1", "參數n","函數體"); arguments 對象 獲得參數的個數 獲得參數的個數和值的總額 控制拋出異常 自執行函數 instanceof 用於判斷一個變數是否某個對 ...
創建 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));