免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2243 | 回复: 1
打印 上一主题 下一主题

javascript [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-01 16:48 |只看该作者 |倒序浏览
javascript






javascript
js 常用函数【转载】


Javascript代码代码  
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); //结果: "good boy does fine."  
//截取第 0 位开始至第 10 位为止的字符   
var myString = "Every good boy does fine.";   
var section = myString.substring(0,10); //结果: "Every good"  
//截取从第 11 位到倒数第 6 位为止的字符   
var myString = "Every good boy does fine.";   
var section = myString.slice(11,-6); //结果: "boy does"  
//从第 6 位开始截取长度为 4 的字符   
var myString = "Every good boy does fine.";   
var section = myString.substr(6,4); //结果: "good"  
4.转换大小写   
var myString = "Hello";   
var lcString = myString.toLowerCase(); //结果: "hello"   
var ucString = myString.toUpperCase(); //结果: "HELLO"  
5.字符串比较   
var aString = "Hello!";   
var bString = new String("Hello!";   
if( aString == "Hello!" ){ } //结果: true   
if( aString == bString ){ } //结果: true   
if( aString === bString ){ } //结果: false (两个对象不同,尽管它们的值相同)   
6.检索字符串   
var myString = "hello everybody.";   
// 如果检索不到会返回-1,检索到的话返回在该串中的起始位置   
if( myString.indexOf("every" > -1 ){ } //结果: true   
7.查找替换字符串   
var myString = "I is your father.";   
var result = myString.replace("is","am"; //结果: "I am your father."  
8.特殊字符:   
\b : 后退符 \t : 水平制表符   
\n : 换行符 \v : 垂直制表符   
\f : 分页符 \r : 回车符   
\" : 双引号 \' : 单引号   
\\ : 反斜杆   
9.将字符转换成Unicode编码   
var myString = "hello";   
var code = myString.charCodeAt(3); //返回"l"的Unicode编码(整型)   
var char = String.fromCharCode(66); //返回Unicode为66的字符   
10.将字符串转换成URL编码   
var myString = "hello all";   
var code = encodeURI(myString); //结果: "hello%20all"   
var str = decodeURI(code); //结果: "hello all"   
//相应的还有: encodeURIComponent() decodeURIComponent()   
11.将字符串转换成base64编码   
// base64Encode() base64Decode() 用法同上   
//-----------------------------------------------------------------------   
·数字型(Number)   
1.声明   
var i = 1;   
var i = new Number(1);   
2.字符串与数字间的转换   
var i = 1;   
var str = i.toString(); //结果: "1"   
var str = new String(i); //结果: "1"   
i = parseInt(str); //结果: 1   
i = parseFloat(str); //结果: 1.0  
//注意: parseInt,parseFloat会把一个类似于"32G"的字符串,强制转换成32  
3.判断是否为有效的数字   
var i = 123; var str = "string";   
if( typeof i == "number" ){ } //true   
//某些方法(如:parseInt,parseFloat)会返回一个特殊的值NaN(Not a Number)   
//请注意第2点中的[注意],此方法不完全适合判断一个字符串是否是数字型!!   
i = parseInt(str);   
if( isNaN(i) ){ }   
4.数字型比较   
//此知识与[字符串比较]相同   
5.小数转整数   
var f = 1.5;   
var i = Math.round(f); //结果:2 (四舍五入)   
var i = Math.ceil(f); //结果:2 (返回大于f的最小整数)   
var i = Math.floor(f); //结果:1 (返回小于f的最大整数)   
6.格式化显示数字   
var i = 3.14159;   
//格式化为两位小数的浮点数   
var str = i.toFixed(2); //结果: "3.14"  
//格式化为五位数字的浮点数(从左到右五位数字,不够补零)   
var str = i.toPrecision(5); //结果: "3.1415"  
7.X进制数字的转换   
//不是很懂 -.-   
var i = parseInt("0x1f",16);   
var i = parseInt(i,10);   
var i = parseInt("11010011",2);   
8.随机数   
//返回0-1之间的任意小数   
var rnd = Math.random();   
//返回0-n之间的任意整数(不包括n)   
var rnd = 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 : log 2 为底的自然数(1.4426950408889634)   
23.Math.LOG10E : log 10 为底的自然数(0.434294481903251   
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(); //系统当前时间   
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.获取时间的某部份   
var myDate = new Date();   
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.计算之前或未来的时间   
var myDate = new Date();   
myDate.setDate(myDate.getDate() + 10); //当前时间加10天   
//类似的方法都基本相同,以set开头,具体参考第2点   
4.计算两个日期的偏移量   
var i = daysBetween(beginDate,endDate); //返回天数   
var i = 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 四种)   
var r = /^(\d{2}|\d{4})[\/-]\d{1,2}[\/-]\d{1,2}$/;   
if( r.test( myString ) ){ }   
//-----------------------------------------------------------------------   
·数组(Array)   
1.声明   
var arr = new Array(); //声明一个空数组   
var arr = new Array(10); //声明一个10个长度的数组   
var arr = new Array("Alice", "Fred", "Jean"; //用值初始化数组   
var arr = ["Alice", "Fred", "Jean"]; //用值初始化数组   
var arr = [["A","B","C"][1,2,3]]; //声明一个二(多)维数组   
2.数组的访问   
arr[0] = "123"; //赋值   
var str = arr[0]; //获取   
arr[0][0] = "123"; //多维数组赋值   
3.数组与字符串间的转换   
var arr = ["A","B","C","D"]; //声明   
//数组按分隔符转换成字符串   
var str = arr.join("|"; //结果: "A|B|C|D"  
//字符串切割成数组   
arr = str.split("|";   
4.遍历数组   
for( var i=0; i<arr.length; i++ ){ alert(arr); }   
5.排序   
var arr = [12,15,8,9];   
arr.sort(); //结果: 8 9 12 15  
6.组合与分解数组   
var arr1 = ["A","B","C","D"];   
var arr2 = ["1","2","3","4"];   
//奖两个数组组合成一个新的数组   
var arr = arr1.concat(arr2); //结果: ["A","B","C","D","1","2","3","4"]   
//将一个数组切成两个数组(参数1:起始索引,参数2:切割长度)   
var arr3 = arr.splice(1,3); //结果: arr3:["B","C","D"] arr["A","1","2","3","4"]   
//将一个数组切成两个数组,并在原数组补新值   
var arr4 = arr.splice(1,3,"AA"); //结果: arr4:["B","C","D"] arr["A","AA","1","2","3","4"]   
//-----------------------------------------------------------------------   
·自定义对象   
1.声明:   
function myUser(uid,pwd){   
this.uid = uid;   
this.pwd = pwd || "000000"; //默认值   
this.show = showInfo; //方法   
}   
//下面的函数不是自定义对象,是自定义对象的方法.继续看下去就明白了   
function showInfo(){   
alert("用户名:" + this.uid + ",密码:" + this.pwd)   
}   
2.实例化:   
var user = new myUser("user","123456");   
var user = {uid:"user",pwd:"123456"};   
3.获取与设置   
alert("用户名是:" + user.uid); //get   
user.uid = "newuser"; //set   
user.show(); //调用show()方法   
//-----------------------------------------------------------------------   
·变量 函数 流程控制   
1.变量   
var i = 1;   
var i = 1, str = "hello";   
2.函数   
function funName(){   
//do something.   
}   
function funName(param1[,paramX]){   
//do something.   
}   
3.嵌套函数   
//某种情况,你需要创建一个函数本身所独有的函数.   
function myFunction(){   
//do something.   
privateFunction();   
function privateFunction(){   
//do something.   
}   
}   
4.匿名函数   
var tmp = function(){ alert("only test."); }   
tmp();   
5.延迟函数调用   
var tId = setTimeout("myFun()",1000); //延迟1000毫秒后再调用myFun()函数   
fucntion myFun(){   
//do something   
clearTimeout(tId); //销毁对象   
}   
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 : 异常行数(NN)   
message : 异常描述(IE,NN)   
name : 错误类型(IE,NN)   
number : 错误代码(IE)   
//错误信息(兼容所有浏览器)   
try{ }   
catch(e){   
var msg = (e.message) ? e.message : e.description;   
alert(msg);   
}   
8.加快脚本的执行速度   
-避免使用 eval() 函数   
-避免使用 with 关键字   
-将重复的表达式赋值精简到最小   
-在较大的对象中使用索引来查找数组   
-减少 document.write() 的使用   
//-----------------------------------------------------------------------   
·浏览器特征( navigator )   
1.浏览器名称   
//IE : "Microsoft Internet Explorer"   
//NS : "Netscape"   
var browserName = navigator.appName;   
2.浏览器版本   
bar browserVersion = navigator.appVersion;   
3.客户端操作系统   
var isWin = ( navigator.userAgent.indexOf("Win") != -1 );   
var isMac = ( navigator.userAgent.indexOf("Mac") != -1 );   
var isUnix = ( navigator.userAgent.indexOf("X11") != -1 );   
4.判断是否支持某对象,方法,属性   
//当一个对象,方法,属性未定义时会返回undefined或null等,这些特殊值都是false   
if( document.images ){ }   
if( document.getElementById ){ }   
5.检查浏览器当前语言   
if( navigator.userLanguage ){ var l = 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:10 Y:20   
window.moveBy(0, 10); //在原有位置上移动位置(偏移量)   
3.创建一个新的窗口   
var win = 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)   
directories //是否显示链接栏(NN,IE)   
titlebar //是否显示标题栏(NN)   
hotkeys //显示菜单快捷键(NN)   
innerHeight //内容区域的高度(NN)   
innerWidth //内容区域的宽度(NN)   
resizable //是否可以调整大小(NN,IE)   
top //窗口距离桌面上边界的大小(NN,IE)   
left //窗口距离桌面左边界的大小(NN,IE)   
height //窗口高度(NN,IE)   
width //浏览器的宽度   
4.与新窗口通讯   
win.focus(); //让新窗口获得焦点   
win.document.write("abc"); //在新窗口上操作   
win.document.close(); //结束流操作   
opener.close();   
5.模式窗口   
window.showModalDialog("test.htm",dialogArgs,"param"); //传递对象   
window.showModelessDialog("test.htm",myFunction,"param"); //传递函数   
window.dialogArguments //对话框访问父窗口传递过来的对象   
window.returnValue //父窗口获取对话框返回的值   
//参数   
center //窗口居中屏幕   
dialogHeight //窗口高度   
dialogWidth //窗口宽度   
dialogTop //窗口距离屏幕的上边距   
dialogLeft //窗口距离屏幕的左边距   
edge //边框风格(raised|sunken)   
help //显示帮助按钮   
resizable //是否可以改变窗口大小   
status //是否显示状态栏   
//例子   
<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="验证是否可用" onclick="openDialog(this.form);">   
</form>   
//另一个页面new.html   
<script>   
window.dialogArguments.btnChk.enabled = false; //将父窗口中的按钮设置为不可用   
//do something to check the Id.   
window.write("用户ID: " + window.dialogArguments.txtId.value + " 可使用!"); //获取文本框的值   
</script>   
//-----------------------------------------------------------------------   
·管理框架网页( frames )   
1.创建一个框架架构网页   
<html>   
<frameset rows="50, *">   
<frame name="header" src="header.html">   
<frame name="main" src="main.html">   
</frameset>   
</html>   
2.访问框架网页   
window.frames   
window.frames["frameName"]   
window.frameName   
window.frames["frameName"].frames["frameName2"]   
parent.frames["frameName"]   
top.frames["frameName"]   
3.将某一页面定向到某框架   
<a href="new.html" target="main">   
location = "new.html";   
parent.frameName.location.href = "new.html";   
top.frameName.location = "new.html";   
4.强制不让其它框架引用某页面   
if (top != self) {   
top.location.href = location.href;   
}   
5.更改框架的大小   
document.framesetName.rows = "50,*";   
document.framesetName.cols = "50,*";   
6.动态创建框架网页   
var frag = document.createDocumentFragment( );   
var newFrame= document.createElement("frame");   
newFrame.id = "header";   
newFrame.name = "header";   
newFrame.src="header.html"   
frag.appendChild(newFrame);   
newFrame = document.createElement("frame");   
newFrame.id = "main";   
newFrame.name = "main";   
newFrame.src="main.html"   
frag.appendChild(newFrame);   
document.getElementById("masterFrameset").rows = "50,*";  

论坛徽章:
0
2 [报告]
发表于 2012-03-01 22:46 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP