电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> Javascript>>JScript 的函数:

JScript 的函数

来源:远方网络 | 2005-3-7 22:31:19 | (有2044人读过)

JScript 教程
--------------------------------------------------------------------------------

什么是函数?
Microsoft JScript 的函数执行各种操作。函数还可以返回结果。有时是计算或比较的结果。
函数将若干操作合并在一个名字下。这样就可以简化代码。可以编写一组语句为其命名,然后通过调用该语句组并给其传递所需的任何信息,根据需要随时执行整个语句组。

给函数传递信息的方式是在函数名后用圆括号将信息括起来。要传递给某个函数的信息的各部分被称为参数。有些函数不需要任何参数;有些函数可能要带一个参数;有些可能有多个。甚至有一些函数的参数个数取决于使用该函数的方式。

JScript 支持两种函数:即在语言中内置的函数,以及自己创建的函数。


特殊的内置函数
JScript 语言中包括若干内置的函数。有些可以用来处理表达式和特殊字符,以及将字符串转换为数值。
例如,escape() 和 unescape() 用来转换 HTML 代码中具有特殊意义的字符、不能直接输入到文字的字符。例如,尖括号 "<" 和 ">",描述了 HTML 标识。

escape 函数将任何特殊字符作为其参数,并返回代表该字符的转义码。每个转义码由两个数字以及后跟的一个百分号 (%) 组成。unescape 函数就是对应的逆函数。它的参数为由两个数字和一个百分号组成的字符串,并返回一个字符。

另一个有用的内置函数是 eval(),该函数对用字符串形式表示的任何合法数学表达式求值。eval() 函数有一个参数,即要求值的表达式。

var anExpression = "6 * 9 % 7";
var total = eval(anExpression); // 将 5 赋给变量 total。
var yetAnotherExpression = "6 * (9 % 7)";
total = eval(yetAnotherExpression) // 将 12 赋给变量 total。

var totality = eval("...surrounded by acres of clams."); // 产生一个错误。

有关这些以及其他内置函数的详细信息,请参阅 语言参考。
创建自己的函数
可以创建自己的函数并在需要的地方使用。一个函数定义由一个 function 语句和一个 JScript 语句块组成。
下面示例中的 checkTriplet 函数将三角形的边长作为其参数,然后通过检查这三个数是否能组成一个 Pythagorean (毕达哥拉斯)三元组(直角三角形斜边长的平方等于其它两条边长的平方和。),从而计算出该三角形是否为直角三角形。 checkTriplet 函数调用另两个函数中的其中一个来进行实际测试。

请注意使用了非常小的数 (“epsilon”) 作为该测试的浮点数版本的一个测试变量。因为浮点数计算不精确和存在舍入误差,因此直接判断斜边的平方是否等于另两边的平方和是不实际的,除非已知该问题中的三个值都是整数。由于直接测试更精确,因此该示例中的代码先判断这个数是否适当,如果是,再使用。

var epsilon = 0.0000000000001; // 用于测试的非常小的数。
var triplet = false;

function integerCheck(a, b, c) { // 适用于整数的检验函数。
if ( (a*a) == ((b*b) + (c*c)) ) { // 具体的检验代码。
triplet = true;
}
} // 整数判别函数结束。

function floatCheck(a, b, c) { // 适用于浮点数的检验函数。
var theCheck = ((a*a) - ((b*b) + (c*c))) // 求检验数。
if (theCheck < 0) { // 判别需要使用绝对值,如果 theCheck 为负数,先转为相应的正数。
theCheck *= -1;
}
if (epsilon > theCheck) { // 如果足够接近非常小值,则可以认为满足条件!
triplet = true;
}
} // 浮点数判别函数结束。

function checkTriplet(a, b, c) { // 三元组判别函数。首先将最长边设为 "a"。
var d = 0; // 创建一个临时存放变量。
if (c > b) { // 如果 c 大于 b,两者进行交换。
d = c;
c = b;
b = d;
} // 否则无需操作。
if (b > a) { // 如果 b 大于 a,两者进行交换。
d = b;
b = a;
a = d;
} // 否则无需操作。

// 如果是直角三角形,则 "a" 边现在就是斜边。

if (((a%1) == 0) && ((b%1) == 0) && ((c%1) == 0)) { // 测试所有 3 个值是否均为整数?
integerCheck(a, b, c); // 如果是,则使用精确判别。
}
else
floatCheck(a, b, c); // 如果不是,则求最可能的结果。
} // 三元组判别函数结束。

// 下面三条语句指定示例值,以进行测试。
var sideA = 5;
var sideB = 5;
var sideC = Math.sqrt(50);

checkTriplet(sideA, sideB, sideC); // 调用该函数。在调用后, triplet 即包含了结果。
上一篇控制程序的流程
下一篇JScript 的对象
Javascript热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号