`
net_liu
  • 浏览: 231292 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js函数(比较全)

    博客分类:
  • JS
阅读更多

 

js 函数集


·
字符串 (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); //
结果 : "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.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(); //
系统当前时间

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[i]); }

 

 

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();


 

分享到:
评论

相关推荐

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    javascript指南和函数式编程

    而《JavaScript函数式.zip》可能是一份关于JavaScript函数式编程的资料集合,函数式编程是一种编程范式,强调使用函数和避免改变状态。其中可能涵盖以下知识点: 1. **纯函数**:理解纯函数的定义,即给定相同的...

    JS 函数式编程指南 PDF

    总结而言,JS函数式编程指南为读者提供了一种途径,借助于JavaScript这种广泛使用的编程语言,去理解和掌握函数式编程的核心概念和实践技巧。这本指南不仅涵盖了函数式编程的基础理论,还详细介绍了如何在实际开发中...

    JavaScript函数式编程.pdf

    不过,由于【标题】中提供了文档的名称——"JavaScript函数式编程.pdf",我可以根据这个名称扩展出关于JavaScript函数式编程的知识点。 JavaScript函数式编程的知识点非常丰富,涉及很多方面的内容,下面将详细介绍...

    javascript实现根据函数名称字符串动态执行函数的方法示例

    在JavaScript编程中,有时会遇到需要根据函数名的字符串形式来动态执行对应函数的场景。这类技术能够提供一种灵活的方式来执行代码,尤其在进行插件化开发、事件驱动编程或实现钩子函数时非常有用。为了实现这一功能...

    javascript函数式编程 underscore.js

    JavaScript函数式编程是一种编程范式,它强调使用函数来组织代码,将计算视为一系列惰性求值的操作。Underscore.js是一个轻量级的JavaScript实用库,它为开发者提供了大量函数式编程工具,使得在JavaScript中实践...

    JS函数全集(经典珍藏版)

    JavaScript函数是编程中不可或缺的一部分,它们提供了一种封装可重用代码的方式,使得开发者能够高效地处理各种任务。本文档汇总了JavaScript中的经典函数,涵盖了五个主要类别:常规函数、数组函数、日期函数、数学...

    javascript 函数式编程

    1. **模块化和可复用的代码**:通过将函数作为值,可以创建可重用的函数库,比如用于排序数组的自定义比较函数: ```javascript var myarray = [6, 7, 9, 1, -1]; myarray.sort(function(a, b) { return a - b; })...

    javaScript函数式编程

    本书专门介绍JavaScript函数式编程的特性。 全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的...

    Java代码调用HTML5中的JS函数算法

    Java可以设置一个端点,接收来自JavaScript的Ajax请求,然后在响应中包含调用JS函数的命令。 3. **HTML5的Web Workers**:Web Workers允许可后台运行的脚本,从而避免阻塞用户界面。Java可以通过HTTP请求触发Web ...

    js验证函数包,js验证函数包

    js验证函数包js验证函数包js验证函数包js验证函数包js验证函数包

    JS 四种函数调用模式

    在 JS 中,有四种主要的函数调用模式,分别是:普通函数调用、方法调用、构造函数调用和apply/call调用。下面我们将详细探讨这些调用模式。 1. **普通函数调用**: 这是最常见的情况,函数作为一个独立的实体被执行...

    JavaScript函数式编程

    本书专门介绍JavaScript函数式编程的特性。 全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的...

    [hook.js]通用Javascript函数钩子

    &lt;script src=hook.js&gt; var myHook = new Hooks(); myHook.initEnv(); //普通全局函数 var _alert = null; function myalert(param){console.log("before hook");} alert.hook("_alert",myalert); alert.unhook("_...

    JavaScript函数(源代码)

    JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)...

    JS function函数 基础案例

    以上就是JavaScript函数的基础知识,包括定义、调用、返回值、匿名函数、箭头函数、作为值的函数、作用域、闭包以及默认参数。通过这些基础知识,你可以构建复杂的程序逻辑,并实现代码的复用。在实际编程中,深入...

    JavaScript常用函数练习

    JavaScript学习函数时,常常会听懂了却做不来实际例子,本资源有部分函数的经典案例及答案,其中有些是基础题,有些逻辑对新人来说难以理解,希望对大家有所帮助。

    JavaScript函数参数使用带参数名的方式赋值传入的方法

    传统的JavaScript函数参数传递是基于位置的,即按照参数在函数定义中的位置来接收值。然而,这种方式在参数较多时容易出错,特别是当参数顺序不正确或者缺失时。为了解决这一问题,JavaScript引入了一种更加直观的...

    qt 调用javascript函数 带参数

    本篇文章将深入探讨如何在Qt中调用JavaScript函数并传递参数,以实现更丰富的功能。 首先,Qt的Webkit模块是实现这一目标的关键。Qt Webkit是一个基于WebKit引擎的组件,它允许Qt应用渲染网页内容,并与网页进行...

    QT和网页中的JavaScript函数进行相互调用的实现

    - 这里的回调函数用于处理JavaScript函数的异步返回结果,如果需要同步获取结果,可以使用`QWebEngineScript`来注册一个全局JavaScript对象,然后通过该对象调用JavaScript函数。 2. **JavaScript调用QT函数**: ...

Global site tag (gtag.js) - Google Analytics