JavaScript的對象
阿新 • • 發佈:2017-05-25
切片 重寫 split cat 沒有 替換字符 分鐘 tr1 不同
JavaScript的對象
String對象
創建字符串對象兩種方式
var str1="hello"; //第一種 var str2=new String(" helloworld "); //第二種 類實例化 object console.log(typeof strl); console.log(typeof str2); //object
調用字符串的對象屬性或方法時自動創建對象,用完就丟棄
字符串屬性
console.log(str2.length); //獲取字符串的長度 console.log(str2.trim());// 去掉兩邊空格 -?python裏面的strip方法 console.log(str2.charAt(View Code3)); //按照索引查找元素位置 console.log(str2.indexOf("d")); //按照元素位置查找索引值 console.log(str2.toLocaleUpperCase()); //轉換成大寫 console.log(str2.toLocaleLowerCase()); //轉換成小寫
字符串處理方法
截取子字符串 substr substring //書寫格式 // //x.substr(start, length) // //x.substring(start, end) //使用註解 // //x代表字符串對象 // //start表示開始位置 // //length表示截取長度 // //end是結束位置加1View Code// //第一個字符位置為0 console.log(str2.substr(2,4)); //start:2 lenth:4 console.log(str2.substring(1,3));//顧頭不顧尾 start:2 end:3
替換字符串 replace方法
/x.replace(findstr,tostr) --?與python方法一樣
分割字符串 split方法
console.log(str2.split("|")); //返回一個數組對象 -?與python方法一樣
切片操作 slice方法
console.log(str2.slice(3,5));
Array對象
數組對象的創建三種方式
var arrl=[111,222,333];//第一種 var arr2=new Array("yuan",12,[11,22]); //第二種 var arr3=new Array(3); //第三種 arr3[0]=12; arr3[1]=true; arr3[2]="hello"; console.log(arrl); console.log( typeof arrl); console.log(arr2); console.log(typeof arrl); console.log(arr3); console.log(typeof arrl);
遍歷數組:
// for(var i in arrl){ // console.log(arrl[i]) // }
字典形式 但不是字典 是object數據類型 // d1={"name":"copila","age":22}; //數據類型是object // console.log(d1); // console.log(typeof d1); // // d2={name:"copila",age:22}; //js字典形式 鍵key可有可無 // console.log(d2); //值必須有 單引號 雙引號都可以 // console.log(typeof d2); // 遍歷返回的是鍵 // for(var i in d1){ //返回的是鍵 // console.log(i) // }View Code
數組屬性:length
var arr1=[111,222,333]; // console.log(arrl.length); //獲取長度
數組對象的方法
連接數組-join方法
//書寫格式 //x.join(bystr) //使用註解 // //x代表數組對象 //bystr作為連接數組中元素的字符串 //返回連接後的字符串 //與字符串的split功能剛好相反 var arr1=[1, 2, 3, 4, 5, 6, 7]; var str1=arr1.join("-"); alert(str1); //結果為"1-2-3-4-5-6-7"View Code
concat方法:數組與數組進行拼接
var a=[1,2,3]; // var a=new Array(1,2,3); var b=a.concat(4,5); console.log( a.toString()); //返回結果為1,2,3 console.log( b.toString()); //返回結果為1,2,3,4,5View Code
數組排序-reverse sort
// 排序 按照ascii最高位排列 // var arr1=[11,14,33,3,52]; // console.log(arr1.reverse()); // // console.log(arr1.sort());View Code
數組切片-slice
//x.slice(start, end) // //使用註解 // //x代表數組對象 //start表示開始位置索引 //end是結束位置下一數組元素索引編號 //第一個數組元素索引為0 //start、end可為負數,-1代表最後一個數組元素 //end省略則相當於從start位置截取以後所有數組元素 var arr1=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘]; var arr2=arr1.slice(2,4); var arr3=arr1.slice(4); //從start開始 end省略截取start開頭以後數據元素 var arr4=arr1.slice(2,-1); alert(arr2.toString()); //結果為"c,d" alert(arr3.toString()); //結果為"e,f,g,h" alert(arr4.toString()); //結果為"c,d,e,f,g"View Code
刪除子數組-spice
//x. splice(start, deleteCount, value, ...) // //使用註解 // //x代表數組對象 //splice的主要用途是對數組指定位置進行刪除和插入 //start表示開始位置索引 //deleteCount刪除數組元素的個數 //value表示在刪除位置插入的數組元素 //value參數可以省略 var a = [1,2,3,4,5,6,7,8]; a.splice(1,2); //刪除 //a變為 [1,4,5,6,7,8] alert(a.toString()); a.splice(1,1); //大於1 刪除 //a變為[1,5,6,7,8] alert(a.toString()); a.splice(1,0,2,3); //等於0位置相當於插入值 //a變為[1,2,3,5,6,7,8] alert(a.toString());View Code
數組的棧操作
push和pop //push pop這兩個方法模擬的是一個棧操作 //x.push(value, ...) 壓棧 //x.pop() 彈棧 //使用註解 // //x代表數組對象 //value可以為字符串、數字、數組等任何值 //push是將value值添加到數組x的結尾 //pop是將數組x的最後一個元素刪除 // push是壓值 pop是排值 //後進先出 // arr1.push(99); // console.log(arr1); // console.log(); // arr1.pop(); // console.log(arr1) //shift unshift //x.unshift(value,...) //x.shift() //使用註解 // //x代表數組對象 //value可以為字符串、數字、數組等任何值 //unshift是將value值插入到數組x的開始 //shift是將數組x的第一個元素刪除 var all1=[12,32,5,33,100]; //後進先出 位置顛倒 arr1.unshift(123); console.log(arr1); arr1.shift(); console.log(arr1);View Code
總結js的數組特性:
// js中數組的特性 //java中數組的特性, 規定是什麽類型的數組,就只能裝什麽類型.只有一種類型. //js中的數組特性1: js中的數組可以裝任意類型,沒有任何限制. //js中的數組特性2: js中的數組,長度是隨著下標變化的.用到多長就有多長. var arr5 = [‘abc‘,123,1.14,true,null,undefined,new String(‘1213‘),new Function(‘a‘,‘b‘,‘alert(a+b)‘)]; /* alert(arr5.length);//8 arr5[10] = "hahaha"; alert(arr5.length); //11 alert(arr5[9]);// undefined */View Code
Date對象
創建Date對象
//方法1:不指定參數 var nowd1=new Date(); alert(nowd1.toLocaleString( )); //方法2:參數為日期字符串 var nowd2=new Date("2004/3/20 11:12"); alert(nowd2.toLocaleString( )); var nowd3=new Date("04/03/20 11:12"); alert(nowd3.toLocaleString( )); //方法3:參數為毫秒數 var nowd3=new Date(5000); alert(nowd3.toLocaleString( )); alert(nowd3.toUTCString()); //方法4:參數為年月日小時分鐘秒毫秒 var nowd4=new Date(2004,2,20,11,12,0,300); alert(nowd4.toLocaleString( )); //毫秒並不直接顯示View Code
Date對象的方法—獲取日期和時間
獲取日期和時間 getDate() 獲取日 getDay () 獲取星期 getMonth () 獲取月(0-11) getFullYear () 獲取完整年份 getYear () 獲取年 getHours () 獲取小時 getMinutes () 獲取分鐘 getSeconds () 獲取秒 getMilliseconds () 獲取毫秒 getTime () 返回累計毫秒數(從1970/1/1午夜)View Code
練習實例:
function getCurrentDate(){ //1. 創建Date對象 var date = new Date(); //沒有填入任何參數那麽就是當前時間 //2. 獲得當前年份 var year = date.getFullYear(); //3. 獲得當前月份 js中月份是從0到11. var month = date.getMonth()+1; //4. 獲得當前日 var day = date.getDate(); //5. 獲得當前小時 var hour = date.getHours(); //6. 獲得當前分鐘 var min = date.getMinutes(); //7. 獲得當前秒 var sec = date.getSeconds(); //8. 獲得當前星期 var week = date.getDay(); //沒有getWeek // 2014年06月18日 15:40:30 星期三 return year+"年"+changeNum(month)+"月"+day+"日 "+hour+":"+min+":"+sec+" "+parseWeek(week); } alert(getCurrentDate()); //解決 自動補齊成兩位數字的方法 function changeNum(num){ if(num < 10){ return "0"+num; }else{ return num; } } //將數字 0~6 轉換成 星期日到星期六 function parseWeek(week){ var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; // 0 1 2 3 ............. return arr[week]; }View Code
Date對象的方法—設置日期和時間
//設置日期和時間 //setDate(day_of_month) 設置日 //setMonth (month) 設置月 //setFullYear (year) 設置年 //setHours (hour) 設置小時 //setMinutes (minute) 設置分鐘 //setSeconds (second) 設置秒 //setMillliseconds (ms) 設置毫秒(0-999) //setTime (allms) 設置累計毫秒(從1970/1/1午夜) var x=new Date(); x.setFullYear (1997); //設置年1997 x.setMonth(7); //設置月7 x.setDate(1); //設置日1 x.setHours(5); //設置小時5 x.setMinutes(12); //設置分鐘12 x.setSeconds(54); //設置秒54 x.setMilliseconds(230); //設置毫秒230 document.write(x.toLocaleString( )+"<br>"); //返回1997年8月1日5點12分54秒 x.setTime(870409430000); //設置累計毫秒數 document.write(x.toLocaleString( )+"<br>"); //返回1997年8月1日12點23分50秒View Code
math對象
console.log(Math.random()); console.log(Math.round(3.14));//四舍五入 console.log(Math.floor(3.14));//向下 console.log(Math.round(Math.random()*100)); //取0-100隨機數
function對象(重點)
函數的定義
function 函數名 (參數){函數體; return 返回值; }
功能說明
可以使用變量、常量或表達式作為函數調用的參數
函數有關鍵字function定義
函數名的定義規則與標識符一致,大小寫是敏感的
返回值必須使用return
Function類可以表示開發者定義的任何函數
用Function類直接創建函數的語法如下;
function 函數名 (參數){ 函數體; return 返回值; } //another way:
var 函數名 = new Function("參數1","參數n","function_body");
雖然由於字符串的關系,第二種形式寫起來有些困難,但有助於理解函數只不過是一種引用類型,它們的行為與用 Function 類明確創建的函數行為是相同的。
function foo() { console.log("ok") } var ret=foo(); console.log(ret); } var sayHello2=new Function("name","alert(‘hello‘+name)"); // sayHello("egon"); //函數是一個對象
註意:js的函數加載執行與python不同,它是整體加載完才會執行,所以執行函數放在函數聲明上面或下面都可以:
<script> //foo(); --->OK function foo(){ console.log("hello") } foo() //----->OK </script>
Function 對象的 length 屬性
函數屬於引用類型,所以它們也有屬性和方法
function sayHello(name) { alert("hello"+name) } sayHello("mei"); console.log(sayHello.length); //函數接收的參數的個數
函數的調用:
function add(a,b) { console.log(a+b) } add(1,2); //3 add(1,2,3);//3 add(1); //不報錯 但是會返回NaN // **********面試題************ // function a(a,b) { // alert(a+b); // } // var a=1; // var b=2; // a(a,b); 會報錯 a重寫了 // ***********面試題***************View Code
函數的內置對象arguments
function add() { console.log(arguments); console.log(typeof arguments); var sum=0; for(var i in arguments){ sum+=arguments[i] } return sum } console.log(add(1,2,3,5,4,54)) //結果69View Code
匿名函數
// 匿名函數 // var func=function (arg) { // return "tony"; // } //匿名函數的應用 // (function(){ // alert("tony"); // })() // //(function(){ // console.log(arg); // })("123")View Code
JavaScript的對象