javascript函数使用技巧集合.docx
《javascript函数使用技巧集合.docx》由会员分享,可在线阅读,更多相关《javascript函数使用技巧集合.docx(17页珍藏版)》请在冰点文库上搜索。
![javascript函数使用技巧集合.docx](https://file1.bingdoc.com/fileroot1/2023-5/21/d9ba081a-7a5b-4cf1-acc4-b24c971d25d2/d9ba081a-7a5b-4cf1-acc4-b24c971d25d21.gif)
javascript函数使用技巧集合
字符串(String)
1.声明
varmyString=newString("Everygoodboydoesfine.");
varmyString="Everygoodboydoesfine.";
2.字符串连接
varmyString="Every"+"goodboy"+"doesfine.";
varmyString="Every";myString+="goodboydoesfine.";
3.截取字符串
//截取第6位开始的字符
varmyString="Everygoodboydoesfine.";
varsection=myString.substring(6);//结果:
"goodboydoesfine."
//截取第0位开始至第10位为止的字符
varmyString="Everygoodboydoesfine.";
varsection=myString.substring(0,10);//结果:
"Everygood"
//截取从第11位到倒数第6位为止的字符
varmyString="Everygoodboydoesfine.";
varsection=myString.slice(11,-6);//结果:
"boydoes"
//从第6位开始截取长度为4的字符
varmyString="Everygoodboydoesfine.";
varsection=myString.substr(6,4);//结果:
"good"
4.转换大小写
varmyString="Hello";
varlcString=myString.toLowerCase();//结果:
"hello"
varucString=myString.toUpperCase();//结果:
"HELLO"
5.字符串比较
varaString="Hello!
";
varbString=newString("Hello!
");
if(aString=="Hello!
"){}//结果:
true
if(aString==bString){}//结果:
true
if(aString===bString){}//结果:
false(两个对象不同,尽管它们的值相同)
6.检索字符串
varmyString="helloeverybody.";
//如果检索不到会返回-1,检索到的话返回在该串中的起始位置
if(myString.indexOf("every")>-1){}//结果:
true
7.查找替换字符串
varmyString="Iisyourfather.";
varresult=myString.replace("is","am");//结果:
"Iamyourfather."
8.特殊字符:
b:
后退符t:
水平制表符
n:
换行符v:
垂直制表符
f:
分页符r:
回车符
":
双引号':
单引号
\:
反斜杆
9.将字符转换成Unicode编码
varmyString="hello";
varcode=myString.charCodeAt(3);//返回"l"的Unicode编码(整型)
varchar=String.fromCharCode(66);//返回Unicode为66的字符
10.将字符串转换成URL编码
varmyString="helloall";
varcode=encodeURI(myString);//结果:
"hello%20all"
varstr=decodeURI(code);//结果:
"helloall"
//相应的还有:
encodeURIComponent()decodeURIComponent()
11.将字符串转换成base64编码
//base64Encode()base64Decode()用法同上
//-----------------------------------------------------------------------
·数字型(Number)
1.声明
vari=1;
vari=newNumber
(1);
2.字符串与数字间的转换
vari=1;
varstr=i.toString();//结果:
"1"
varstr=newString(i);//结果:
"1"
i=parseInt(str);//结果:
1
i=parseFloat(str);//结果:
1.0
//注意:
parseInt,parseFloat会把一个类似于"32G"的字符串,强制转换成32
3.判断是否为有效的数字
vari=123;varstr="string";
if(typeofi=="number"){}//true
//某些方法(如:
parseInt,parseFloat)会返回一个特殊的值NaN(NotaNumber)
//请注意第2点中的[注意],此方法不完全适合判断一个字符串是否是数字型!
!
i=parseInt(str);
if(isNaN(i)){}
4.数字型比较
//此知识与[字符串比较]相同
5.小数转整数
varf=1.5;
vari=Math.round(f);//结果:
2(四舍五入)
vari=Math.ceil(f);//结果:
2(返回大于f的最小整数)
vari=Math.floor(f);//结果:
1(返回小于f的最大整数)
6.格式化显示数字
vari=3.14159;
//格式化为两位小数的浮点数
varstr=i.toFixed
(2);//结果:
"3.14"
//格式化为五位数字的浮点数(从左到右五位数字,不够补零)
varstr=i.toPrecision(5);//结果:
"3.1415"
7.X进制数字的转换
//不是很懂-.-
vari=parseInt("0x1f",16);
vari=parseInt(i,10);
vari=parseInt("11010011",2);
8.随机数
//返回0-1之间的任意小数
varrnd=Math.random();
//返回0-n之间的任意整数(不包括n)
varrnd=Math.floor(Math.random()*n)
//-----------------------------------------------------------------------
·Math对象
1.Math.abs(num):
返回num的绝对值
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的最小整数
7.Math.cos(num):
返回num的余弦值
8.Math.exp(x):
返回以自然数为底,x次幂的数
9.Math.floor(num):
返回小于num的最大整数
10.Math.log(num):
返回num的自然对数
11.Math.max(num1,num2):
返回num1和num2中较大的一个
12.Math.min(num1,num2):
返回num1和num2中较小的一个
13.Math.pow(x,y):
返回x的y次方的值
14.Math.random():
返回0到1之间的一个随机数
15.Math.round(num):
返回num四舍五入后的值
16.Math.sin(num):
返回num的正弦值
17.Math.sqrt(num):
返回num的平方根
18.Math.tan(num):
返回num的正切值
19.Math.E:
自然数(2.718281828459045)
20.Math.LN2:
2的自然对数(0.6931471805599453)
21.Math.LN10:
10的自然对数(2.302585092994046)
22.Math.LOG2E:
log2为底的自然数(1.4426950408889634)
23.Math.LOG10E:
log10为底的自然数(0.4342944819032518)
24.Math.PI:
π(3.141592653589793)
25.Math.SQRT1_2:
1/2的平方根(0.7071067811865476)
26.Math.SQRT2:
2的平方根(1.4142135623730951)
//-----------------------------------------------------------------------
·日期型(Date)
1.声明
varmyDate=newDate();//系统当前时间
varmyDate=newDate(yyyy,mm,dd,hh,mm,ss);
varmyDate=newDate(yyyy,mm,dd);
varmyDate=newDate("monthNamedd,yyyyhh:
mm:
ss");
varmyDate=newDate("monthNamedd,yyyy");
varmyDate=newDate(epochMilliseconds);
2.获取时间的某部份
varmyDate=newDate();
myDate.getYear();//获取当前年份(2位)
myDate.getFullYear();//获取完整的年份(4位,1970-?
?
?
?
)
myDate.getMonth();//获取当前月份(0-11,0代表1月)
myDate.getDate();//获取当前日(1-31)
myDate.getDay();//获取当前星期X(0-6,0代表星期天)
myDate.getTime();//获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours();//获取当前小时数(0-23)
myDate.getMinutes();//获取当前分钟数(0-59)
myDate.getSeconds();//获取当前秒数(0-59)
myDate.getMilliseconds();//获取当前毫秒数(0-999)
myDate.toLocaleDateString();//获取当前日期
myDate.toLocaleTimeString();//获取当前时间
myDate.toLocaleString();//获取日期与时间
3.计算之前或未来的时间
varmyDate=newDate();
myDate.setDate(myDate.getDate()+10);//当前时间加10天
//类似的方法都基本相同,以set开头,具体参考第2点
4.计算两个日期的偏移量
vari=daysBetween(beginDate,endDate);//返回天数
vari=beginDate.getTimezoneOffset(endDate);//返回分钟数
5.检查有效日期
//checkDate()只允许"mm-dd-yyyy"或"mm/dd/yyyy"两种格式的日期
if(checkDate("2006-01-01")){}
//正则表达式(自己写的检查yyyy-mm-dd,yy-mm-dd,yyyy/mm/dd,yy/mm/dd四种)
varr=/^(d{2}|d{4})[/-]d{1,2}[/-]d{1,2}$/;
if(r.test(myString)){}
//-----------------------------------------------------------------------
·数组(Array)
1.声明
vararr=newArray();//声明一个空数组
vararr=newArray(10);//声明一个10个长度的数组
vararr=newArray("Alice","Fred","Jean");//用值初始化数组
vararr=["Alice","Fred","Jean"];//用值初始化数组
vararr=[["A","B","C"][1,2,3]];//声明一个二(多)维数组
2.数组的访问
arr[0]="123";//赋值
varstr=arr[0];//获取
arr[0][0]="123";//多维数组赋值
3.数组与字符串间的转换
vararr=["A","B","C","D"];//声明
//数组按分隔符转换成字符串
varstr=arr.join("|");//结果:
"A|B|C|D"
//字符串切割成数组
arr=str.split("|");
4.遍历数组
for(vari=0;i5.排序
vararr=[12,15,8,9];
arr.sort();//结果:
891215
6.组合与分解数组
vararr1=["A","B","C","D"];
vararr2=["1","2","3","4"];
//奖两个数组组合成一个新的数组
vararr=arr1.concat(arr2);//结果:
["A","B","C","D","1","2","3","4"]
//将一个数组切成两个数组(参数1:
起始索引,参数2:
切割长度)
vararr3=arr.splice(1,3);//结果:
arr3:
["B","C","D"]arr["A","1","2","3","4"]
//将一个数组切成两个数组,并在原数组补新值
vararr4=arr.splice(1,3,"AA");//结果:
arr4:
["B","C","D"]arr["A","AA","1","2","3","4"]
//-----------------------------------------------------------------------
·自定义对象
1.声明:
functionmyUser(uid,pwd){
this.uid=uid;
this.pwd=pwd||"000000";//默认值
this.show=showInfo;//方法
}
//下面的函数不是自定义对象,是自定义对象的方法.继续看下去就明白了
functionshowInfo(){
alert("用户名:
"+this.uid+",密码:
"+this.pwd)
}
2.实例化:
varuser=newmyUser("user","123456");
varuser={uid:
"user",pwd:
"123456"};
3.获取与设置
alert("用户名是:
"+user.uid);//get
user.uid="newuser";//set
user.show();//调用show()方法
//-----------------------------------------------------------------------
·变量函数流程控制
1.变量
vari=1;
vari=1,str="hello";
2.函数
functionfunName(){
//dosomething.
}
functionfunName(param1[,paramX]){
//dosomething.
}
3.嵌套函数
//某种情况,你需要创建一个函数本身所独有的函数.
functionmyFunction(){
//dosomething.
privateFunction();
functionprivateFunction(){
//dosomething.
}
}
4.匿名函数
vartmp=function(){alert("onlytest.");}
tmp();
5.延迟函数调用
vartId=setTimeout("myFun()",1000);//延迟1000毫秒后再调用myFun()函数
fucntionmyFun(){
//dosomething
clearTimeout(tId);//销毁对象
}
6.流程控制
if(condition){}
if(condition){}else{}
if(condition){}elseif(condition){}else{}
switch(expression){
casevalA:
statement;break;
casevalB:
statement;break;
default:
statement;break;
}
7.异常捕获
try{expression}catch(e){}finally{}
//不处理任何异常
window.onerror=doNothing;
functiondoNothing(){returntrue;}
//异常类可用的属性
description:
异常描述(IE,NN)
fileName:
异常页面URI(NN)
lineNumber:
异常行数(NN)
message:
异常描述(IE,NN)
name:
错误类型(IE,NN)
number:
错误代码(IE)
//错误信息(兼容所有浏览器)
try{}
catch(e){
varmsg=(e.message)?
e.message:
e.description;
alert(msg);
}
8.加快脚本的执行速度
-避免使用eval()函数
-避免使用with关键字
-将重复的表达式赋值精简到最小
-在较大的对象中使用索引来查找数组
-减少document.write()的使用
//-----------------------------------------------------------------------
·浏览器特征(navigator)
1.浏览器名称
//IE:
"MicrosoftInternetExplorer"
//NS:
"Netscape"
varbrowserName=navigator.appName;
2.浏览器版本
barbrowserVersion=navigator.appVersion;
3.客户端操作系统
varisWin=(navigator.userAgent.indexOf("Win")!
=-1);
varisMac=(navigator.userAgent.indexOf("Mac")!
=-1);
varisUnix=(navigator.userAgent.indexOf("X11")!
=-1);
4.判断是否支持某对象,方法,属性
//当一个对象,方法,属性未定义时会返回undefined或null等,这些特殊值都是false
if(document.images){}
if(document.getElementById){}
5.检查浏览器当前语言
if(navigator.userLanguage){varl=navigator.userLanguage.toUpperCase();}
6.检查浏览器是否支持Cookies
if(navigator.cookieEnabled){}
//-----------------------------------------------------------------------
·控制浏览器窗口(window)
1.设置浏览器的大小
window.resizeTo(800,600);//将浏览器调整到800X600大小
window.resizeBy(50,-10);//在原有大小上改变增大或减小窗口大小
2.调整浏览器的位置
window.moveTo(10,20);//将浏览器的位置定位到X:
10Y:
20
window.moveBy(0,10);//在原有位置上移动位置(偏移量)
3.创建一个新的窗口
varwin=window.open("about.htm","winName","height=300,width=400");
//参数
alwaysLowered//始终在其它浏览器窗口的后面(NN)
alwaysRaised//始终在其它浏览器窗口的前面(NN)
channelMode//是否为导航模式(IE)
copyhistory//复制历史记录至新开的窗口(NN)
dependent//新窗口随打开它的主窗口关闭而关闭(NN)
fullscreen//全屏模式(所有相关的工具栏都没有)(IE)
location//是否显示地址栏(NN,IE)
menubar//是否显示菜单栏(NN,IE)
scrollbars//是否显示滚动条(NN,IE)
status//是否显示状态栏(NN,IE)
toolbar//是否显示工具栏(NN,IE