.字符串(String)
1.聲明
var myString = new String("Every good boy does fine.");
var myString = "Every good boy does fine.";
2.字符串連接
var myString = "Every " + "good boy " + "does fine.";
var myString = "Every "; myString += "good boy does fine.";
3.截取字符串
//截取第 6 位開始的字符
var myString = "Every good boy does fine.";
var section = myString.substring(6); //結(jié)果: "good boy does fine."
//截取第 0 位開始至第 10 位為止的字符
var myString = "Every good boy does fine.";
var section = myString.substring(0,10); //結(jié)果: "Every good"
//截取從第 11 位到倒數(shù)第 6 位為止的字符
var myString = "Every good boy does fine.";
var section = myString.slice(11,-6); //結(jié)果: "boy does"
//從第 6 位開始截取長(zhǎng)度為 4 的字符
var myString = "Every good boy does fine.";
var section = myString.substr(6,4); //結(jié)果: "good"
4.轉(zhuǎn)換大小寫
var myString = "Hello";
var lcString = myString.toLowerCase(); //結(jié)果: "hello"
var ucString = myString.toUpperCase(); //結(jié)果: "HELLO"
5.字符串比較
var aString = "Hello!";
var bString = new String("Hello!");
if( aString == "Hello!" ){ } //結(jié)果: true
if( aString == bString ){ } //結(jié)果: true
if( aString === bString ){ } //結(jié)果: false (兩個(gè)對(duì)象不同,盡管它們的值相同)
6.檢索字符串
var myString = "hello everybody.";
// 如果檢索不到會(huì)返回-1,檢索到的話返回在該串中的起始位置
if( myString.indexOf("every") > -1 ){ } //結(jié)果: true
7.查找替換字符串
var myString = "I is your father.";
var result = myString.replace("is","am"); //結(jié)果: "I am your father."
8.特殊字符:
/b : 后退符 /t : 水平制表符
/n : 換行符 /v : 垂直制表符
/f : 分頁符 /r : 回車符
/" : 雙引號(hào) /' : 單引號(hào)
// : 反斜桿
9.將字符轉(zhuǎn)換成Unicode編碼
var myString = "hello";
var code = myString.charCodeAt(3); //返回"l"的Unicode編碼(整型)
var char = String.fromCharCode(66); //返回Unicode為66的字符
10.將字符串轉(zhuǎn)換成URL編碼
var myString = "hello all";
var code = encodeURI(myString); //結(jié)果: "hello%20all"
var str = decodeURI(code); //結(jié)果: "hello all"
//相應(yīng)的還有: encodeURIComponent() decodeURIComponent()
11.將字符串轉(zhuǎn)換成base64編碼
// base64Encode() base64Decode() 用法同上
//-----------------------------------------------------------------------
·數(shù)字型(Number)
1.聲明
var i = 1;
var i = new Number(1);
2.字符串與數(shù)字間的轉(zhuǎn)換
var i = 1;
var str = i.toString(); //結(jié)果: "1"
var str = new String(i); //結(jié)果: "1"
i = parseInt(str); //結(jié)果: 1
i = parseFloat(str); //結(jié)果: 1.0
//注意: parseInt,parseFloat會(huì)把一個(gè)類似于"32G"的字符串,強(qiáng)制轉(zhuǎn)換成32
3.判斷是否為有效的數(shù)字
var i = 123; var str = "string";
if( typeof i == "number" ){ } //true
//某些方法(如:parseInt,parseFloat)會(huì)返回一個(gè)特殊的值NaN(Not a Number)
//請(qǐng)注意第2點(diǎn)中的[注意],此方法不完全適合判斷一個(gè)字符串是否是數(shù)字型!!
i = parseInt(str);
if( isNaN(i) ){ }
4.數(shù)字型比較
//此知識(shí)與[字符串比較]相同
5.小數(shù)轉(zhuǎn)整數(shù)
var f = 1.5;
var i = Math.round(f); //結(jié)果:2 (四舍五入)
var i = Math.ceil(f); //結(jié)果:2 (返回大于f的最小整數(shù))
var i = Math.floor(f); //結(jié)果:1 (返回小于f的最大整數(shù))
6.格式化顯示數(shù)字
var i = 3.14159;
//格式化為兩位小數(shù)的浮點(diǎn)數(shù)
var str = i.toFixed(2); //結(jié)果: "3.14"
//格式化為五位數(shù)字的浮點(diǎn)數(shù)(從左到右五位數(shù)字,不夠補(bǔ)零)
var str = i.toPrecision(5); //結(jié)果: "3.1415"
7.X進(jìn)制數(shù)字的轉(zhuǎn)換
//不是很懂 -.-
var i = parseInt("0x1f",16);
var i = parseInt(i,10);
var i = parseInt("11010011",2);
8.隨機(jī)數(shù)
//返回0-1之間的任意小數(shù)
var rnd = Math.random();
//返回0-n之間的任意整數(shù)(不包括n)
var rnd = Math.floor(Math.random() * n)
//-----------------------------------------------------------------------
·Math對(duì)象
1. Math.abs(num) : 返回num的絕對(duì)值
2. Math.acos(num) : 返回num的反余弦值
3. Math.asin(num) : 返回num的反正弦值
4. Math.atan(num) : 返回num的反正切值
5. Math.atan2(y,x) : 返回y除以x的商的反正切值
6. Math.ceil(num) : 返回大于num的最小整數(shù)
7. Math.cos(num) : 返回num的余弦值
8. Math.exp(x) : 返回以自然數(shù)為底,x次冪的數(shù)
9. Math.floor(num) : 返回小于num的最大整數(shù)
10.Math.log(num) : 返回num的自然對(duì)數(shù)
11.Math.max(num1,num2) : 返回num1和num2中較大的一個(gè)
12.Math.min(num1,num2) : 返回num1和num2中較小的一個(gè)
13.Math.pow(x,y) : 返回x的y次方的值
14.Math.random() : 返回0到1之間的一個(gè)隨機(jī)數(shù)
15.Math.round(num) : 返回num四舍五入后的值
16.Math.sin(num) : 返回num的正弦值
17.Math.sqrt(num) : 返回num的平方根
18.Math.tan(num) : 返回num的正切值
19.Math.E : 自然數(shù)(2.718281828459045)
20.Math.LN2 : 2的自然對(duì)數(shù)(0.6931471805599453)
21.Math.LN10 : 10的自然對(duì)數(shù)(2.302585092994046)
22.Math.LOG2E : log 2 為底的自然數(shù)(1.4426950408889634)
23.Math.LOG10E : log 10 為底的自然數(shù)(0.4342944819032518)
24.Math.PI : π(3.141592653589793)
25.Math.SQRT1_2 : 1/2的平方根(0.7071067811865476)
26.Math.SQRT2 : 2的平方根(1.4142135623730951)
//-----------------------------------------------------------------------
·日期型(Date)
1.聲明
var myDate = new Date(); //系統(tǒng)當(dāng)前時(shí)間
var myDate = new Date(yyyy, mm, dd, hh, mm, ss);
var myDate = new Date(yyyy, mm, dd);
var myDate = new Date("monthName dd, yyyy hh:mm:ss");
var myDate = new Date("monthName dd, yyyy");
var myDate = new Date(epochMilliseconds);
2.獲取時(shí)間的某部份
var myDate = new Date();
myDate.getYear(); //獲取當(dāng)前年份(2位)
myDate.getFullYear(); //獲取完整的年份(4位,1970-????)
myDate.getMonth(); //獲取當(dāng)前月份(0-11,0代表1月)
myDate.getDate(); //獲取當(dāng)前日(1-31)
myDate.getDay(); //獲取當(dāng)前星期X(0-6,0代表星期天)
myDate.getTime(); //獲取當(dāng)前時(shí)間(從1970.1.1開始的毫秒數(shù))
myDate.getHours(); //獲取當(dāng)前小時(shí)數(shù)(0-23)
myDate.getMinutes(); //獲取當(dāng)前分鐘數(shù)(0-59)
myDate.getSeconds(); //獲取當(dāng)前秒數(shù)(0-59)
myDate.getMilliseconds(); //獲取當(dāng)前毫秒數(shù)(0-999)
myDate.toLocaleDateString(); //獲取當(dāng)前日期
myDate.toLocaleTimeString(); //獲取當(dāng)前時(shí)間
myDate.toLocaleString( ); //獲取日期與時(shí)間
3.計(jì)算之前或未來的時(shí)間
var myDate = new Date();
myDate.setDate(myDate.getDate() + 10); //當(dāng)前時(shí)間加10天
//類似的方法都基本相同,以set開頭,具體參考第2點(diǎn)
4.計(jì)算兩個(gè)日期的偏移量
var i = daysBetween(beginDate,endDate); //返回天數(shù)
var i = beginDate.getTimezoneOffset(endDate); //返回分鐘數(shù)
5.檢查有效日期
//checkDate() 只允許"mm-dd-yyyy"或"mm/dd/yyyy"兩種格式的日期
if( checkDate("2006-01-01") ){ }
//正則表達(dá)式(自己寫的檢查 yyyy-mm-dd, yy-mm-dd, yyyy/mm/dd, yy/mm/dd 四種)
var r = /^(/d{2}|/d{4})[//-]/d{1,2}[//-]/d{1,2}$/;
if( r.test( myString ) ){ }
//-----------------------------------------------------------------------
·數(shù)組(Array)
1.聲明
var arr = new Array(); //聲明一個(gè)空數(shù)組
var arr = new Array(10); //聲明一個(gè)10個(gè)長(zhǎng)度的數(shù)組
var arr = new Array("Alice", "Fred", "Jean"); //用值初始化數(shù)組
var arr = ["Alice", "Fred", "Jean"]; //用值初始化數(shù)組
var arr = [["A","B","C"][1,2,3]]; //聲明一個(gè)二(多)維數(shù)組
2.數(shù)組的訪問
arr[0] = "123"; //賦值
var str = arr[0]; //獲取
arr[0][0] = "123"; //多維數(shù)組賦值
3.數(shù)組與字符串間的轉(zhuǎn)換
var arr = ["A","B","C","D"]; //聲明
//數(shù)組按分隔符轉(zhuǎn)換成字符串
var str = arr.join("|"); //結(jié)果: "A|B|C|D"
//字符串切割成數(shù)組
arr = str.split("|");
4.遍歷數(shù)組
for( var i=0; i<arr.length; i++ ){ alert(arr); }
5.排序
var arr = [12,15,8,9];
arr.sort(); //結(jié)果: 8 9 12 15
6.組合與分解數(shù)組
var arr1 = ["A","B","C","D"];
var arr2 = ["1","2","3","4"];
//獎(jiǎng)兩個(gè)數(shù)組組合成一個(gè)新的數(shù)組
var arr = arr1.concat(arr2); //結(jié)果: ["A","B","C","D","1","2","3","4"]
//將一個(gè)數(shù)組切成兩個(gè)數(shù)組(參數(shù)1:起始索引,參數(shù)2:切割長(zhǎng)度)
var arr3 = arr.splice(1,3); //結(jié)果: arr3:["B","C","D"] arr["A","1","2","3","4"]
//將一個(gè)數(shù)組切成兩個(gè)數(shù)組,并在原數(shù)組補(bǔ)新值
var arr4 = arr.splice(1,3,"AA"); //結(jié)果: arr4:["B","C","D"] arr["A","AA","1","2","3","4"]
//-----------------------------------------------------------------------
·自定義對(duì)象
1.聲明:
function myUser(uid,pwd){
this.uid = uid;
this.pwd = pwd || "000000"; //默認(rèn)值
this.show = showInfo; //方法
}
//下面的函數(shù)不是自定義對(duì)象,是自定義對(duì)象的方法.繼續(xù)看下去就明白了
function showInfo(){
alert("用戶名:" + this.uid + ",密碼:" + this.pwd)
}
2.實(shí)例化:
var user = new myUser("user","123456");
var user = {uid:"user",pwd:"123456"};
3.獲取與設(shè)置
alert("用戶名是:" + user.uid); //get
user.uid = "newuser"; //set
user.show(); //調(diào)用show()方法
//-----------------------------------------------------------------------
·變量 函數(shù) 流程控制
1.變量
var i = 1;
var i = 1, str = "hello";
2.函數(shù)
function funName(){
//do something.
}
function funName(param1[,paramX]){
//do something.
}
3.嵌套函數(shù)
//某種情況,你需要?jiǎng)?chuàng)建一個(gè)函數(shù)本身所獨(dú)有的函數(shù).
function myFunction(){
//do something.
privateFunction();
function privateFunction(){
//do something.
}
}
4.匿名函數(shù)
var tmp = function(){ alert("only test."); }
tmp();
5.延遲函數(shù)調(diào)用
var tId = setTimeout("myFun()",1000); //延遲1000毫秒后再調(diào)用myFun()函數(shù)
fucntion myFun(){
//do something
clearTimeout(tId); //銷毀對(duì)象
}
6.流程控制
if( condition ){ }
if( condition ){ } else{ }
if( condition ){ } else if( condition ){ } else{ }
switch( expression ){
case valA : statement; break;
case valB : statement; break;
default : statement; break;
}
7.異常捕獲
try{ expression } catch(e){ } finally{ }
//不處理任何異常
window.onerror = doNothing;
function doNothing(){ return true; }
//異常類可用的屬性
description : 異常描述(IE,NN)
fileName : 異常頁面URI(NN)
lineNumber : 異常行數(shù)(NN)
message : 異常描述(IE,NN)
name : 錯(cuò)誤類型(IE,NN)
number : 錯(cuò)誤代碼(IE)
//錯(cuò)誤信息(兼容所有瀏覽器)
try{ }
catch(e){
var msg = (e.message) ? e.message : e.description;
alert(msg);
}
8.加快腳本的執(zhí)行速度
-避免使用 eval() 函數(shù)
-避免使用 with 關(guān)鍵字
-將重復(fù)的表達(dá)式賦值精簡(jiǎn)到最小
-在較大的對(duì)象中使用索引來查找數(shù)組
-減少 document.write() 的使用
//-----------------------------------------------------------------------
·瀏覽器特征( navigator )
1.瀏覽器名稱
//IE : "Microsoft Internet Explorer"
//NS : "Netscape"
var browserName = navigator.appName;
2.瀏覽器版本
bar browserVersion = navigator.appVersion;
3.客戶端操作系統(tǒng)
var isWin = ( navigator.userAgent.indexOf("Win") != -1 );
var isMac = ( navigator.userAgent.indexOf("Mac") != -1 );
var isUnix = ( navigator.userAgent.indexOf("X11") != -1 );
4.判斷是否支持某對(duì)象,方法,屬性
//當(dāng)一個(gè)對(duì)象,方法,屬性未定義時(shí)會(huì)返回undefined或null等,這些特殊值都是false
if( document.images ){ }
if( document.getElementById ){ }
5.檢查瀏覽器當(dāng)前語言
if( navigator.userLanguage ){ var l = navigator.userLanguage.toUpperCase(); }
6.檢查瀏覽器是否支持Cookies
if( navigator.cookieEnabled ){ }
//-----------------------------------------------------------------------
·控制瀏覽器窗口( window )
1.設(shè)置瀏覽器的大小
window.resizeTo(800, 600); //將瀏覽器調(diào)整到800X600大小
window.resizeBy(50, -10); //在原有大小上改變?cè)龃蠡驕p小窗口大小
2.調(diào)整瀏覽器的位置
window.moveTo(10, 20); //將瀏覽器的位置定位到X:10 Y:20
window.moveBy(0, 10); //在原有位置上移動(dòng)位置(偏移量)
3.創(chuàng)建一個(gè)新的窗口
var win = window.open("about.htm","winName","height=300,width=400");
//參數(shù)
alwaysLowered //始終在其它瀏覽器窗口的后面(NN)
alwaysRaised //始終在其它瀏覽器窗口的前面(NN)
channelMode //是否為導(dǎo)航模式(IE)
copyhistory //復(fù)制歷史記錄至新開的窗口(NN)
dependent //新窗口隨打開它的主窗口關(guān)閉而關(guān)閉(NN)
fullscreen //全屏模式(所有相關(guān)的工具欄都沒有)(IE)
location //是否顯示地址欄(NN,IE)
menubar //是否顯示菜單欄(NN,IE)
scrollbars //是否顯示滾動(dòng)條(NN,IE)
status //是否顯示狀態(tài)欄(NN,IE)
toolbar //是否顯示工具欄(NN,IE)
directories //是否顯示鏈接欄(NN,IE)
titlebar //是否顯示標(biāo)題欄(NN)
hotkeys //顯示菜單快捷鍵(NN)
innerHeight //內(nèi)容區(qū)域的高度(NN)
innerWidth //內(nèi)容區(qū)域的寬度(NN)
resizable //是否可以調(diào)整大小(NN,IE)
top //窗口距離桌面上邊界的大小(NN,IE)
left //窗口距離桌面左邊界的大小(NN,IE)
height //窗口高度(NN,IE)
width //瀏覽器的寬度
4.與新窗口通訊
win.focus(); //讓新窗口獲得焦點(diǎn)
win.document.write("abc"); //在新窗口上操作
win.document.close(); //結(jié)束流操作
opener.close();
5.模式窗口
window.showModalDialog("test.htm",dialogArgs,"param"); //傳遞對(duì)象
window.showModelessDialog("test.htm",myFunction,"param"); //傳遞函數(shù)
window.dialogArguments //對(duì)話框訪問父窗口傳遞過來的對(duì)象
window.returnValue //父窗口獲取對(duì)話框返回的值
//參數(shù)
center //窗口居中屏幕
dialogHeight //窗口高度
dialogWidth //窗口寬度
dialogTop //窗口距離屏幕的上邊距
dialogLeft //窗口距離屏幕的左邊距
edge //邊框風(fēng)格(raised|sunken)
help //顯示幫助按鈕
resizable //是否可以改變窗口大小
status //是否顯示狀態(tài)欄
//例子
<script>
function openDialog(myForm) {
var result = window.showModalDialog("new.html",myForm,"center");
}
</script>
<form action="#" onsubmit="return false">
<input type="text" id="txtId">
<input type="button" id="btnChk" value="驗(yàn)證是否可用" onclick="openDialog(this.form);">
</form>
//另一個(gè)頁面new.html
<script>
window.dialogArguments.btnChk.enabled = false; //將父窗口中的按鈕設(shè)置為不可用
//do something to check the Id.
window.write("用戶ID: " + window.dialogArguments.txtId.value + " 可使用!"); //獲取文本框的值
</script>
聯(lián)系客服