一、遞歸
所謂遞歸即函數自己調用自己,語法如下:
//fcname:遞歸函數名
function fcname() {
? ? fcname() {}
}
eg:求10的階乘
function fcname(num) {
? ? if(num<=1) {
? ? ? ? ? ? return 1;
? ? }
? ? else {
? ? ? ? ? ? return fcname(num-1)*num;
? ? }
}
console.log("10!="+fcname(10)); //輸出結果:10!=3628800
注:其他js內置函數
1、eval():求字符串中表達式的值;
2、isFinite():判斷一個數值是否為無窮大;
3、isNaN():判斷一個數值是否為NaN;
4、parseInt():將字符型轉換為整型;
6、parseFloat():將字符型轉換為浮點型;
7、encodeURI():將字符串轉換為有效的URL(ajax請求時可轉換中文用:encodeURI(encodeURI("所發送的中文字符串")));
8、encodeURIComponent():將字符串轉換為有效的URL組件;
9、decodeURI():對encodeURI()編碼的文本進行解碼;
10、decodeURIComponent():對encodeURIComponent()編碼的文本進行解碼;
二、數組操作【點擊查看“更多數組操作”】
1、冒泡排序、方法如下:
注:所謂冒泡排序,即依次比較數組中相鄰元素的值,從小到大(或從大到小)排序。
eg:從小到大排序
var arr = [90,85,99,4,50,60,33,15];
for(var i=0; i<arr.length-1; i++) {
? ? for(var j=0; j<arr.length-1-i; j++) {
? ? ? ? ? ? if(arr[j]>arr[j+1]) {
? ? ? ? ? ? ? ? ? ? var temp = arr[j];
? ? ? ? ? ? ? ? ? ? arr[j] = arr[j+1];
? ? ? ? ? ? ? ? ? ? arr[j+1] = temp;
? ? ? ? ? ? }
? ? }
}
console.log(arr); //輸出結果:[4, 15, 33, 50, 60, 85, 90, 99]
2、數組去重、方法如下:
function resame(arrs){
? ? var newarr = [];
? ? var json = {};
? ? for(var i = 0; i < arrs.length; i++) {
? ? ? ? if(json[arrs[i]] != arrs[i]) {
? ? ? ? ? ? newarr.push(arrs[i]);
? ? ? ? ? ? json[arrs[i]] = arrs[i];
? ? }
}
return newarr;
}
var arr = [1,2,3,1,2,3,"哈","嗨",4,5,6,4,5,6,"哈","嗨"];
console.log(resame(arr)); //輸出結果:[1, 2, 3, "哈", "嗨", 4, 5, 6]
三、字符串操作【點擊查看“更多字符串操作”】
1、去空格,方法如下:
a.字符串去所有空格
var str = " hello world ! ";
var str1 = str.replace(/\s/g, "");
console.log(str1); //輸出結果:helloworld!
b.jQuery字符串去首尾兩端所有空格方法
var str ="? ? ? ? hello world? ? ? ";
console.log(str.trim()); //輸出結果:hello world
四、面向對象
1、工廠方法(無參),方法如下:
function createCar() {
? ? var car = new Object;
? ? car.color = "黑色";
? ? car.run = function() {
? ? ? ? console.log("顏色為"+car.color)
? ? }
? ? return car;
}
var ocar = createCar();
ocar.run(); //輸出結果:顏色為黑色
2、工廠方法(有參),方法如下:
function createCar(sColor) {
? ? var car = new Object;
? ? car.color = sColor;
? ? car.run = function() {
? ? ? ? console.log("顏色為"+car.color)
? ? }
? ? return car;
}
var ocar = createCar("紅色");
ocar.run(); //輸出結果:顏色為紅色
3、構造函數,方法如下:
function car(sColor) {
? ? this.color = sColor;
? ? this.run = function() {
? ? ? ? console.log("顏色為"+this.color)
? ? }
}
var ocar = new car("白色");
ocar.run(); //輸出結果:顏色為白色
4、追加屬性,方法如下:
function car(sColor) {
? ? car.prototype.color = sColor;
? ? car.prototype.run = function() {
? ? ? ? console.log("顏色為"+this.color)
? ? }
}
var ocar = new car("藍色");
ocar.run(); //輸出結果:顏色為藍色