Microsoft Jscript 函数执行操作也可以返回值某些时候是计算或比较的结果函数又被称为全局方法
一个函数中包含有几个操作这样可使得代码更合理化可以写一组语句并给其命名然后通过调用它并传递其需要的信息来运行整组语句
给函数传递信息可以把信息放在函数名称后面的圆括号中传递给函数的信息称作参数某些函数根本不带任何参数而其他函数带一个或者多个参数在某些函数中参数的个数取决于如何使用该函数
Jscript 支持两种函数一类是语言内部的函数另一类是自己创建的
特殊的内部函数
Jscript 语言包含很多内部函数某些函数可以操作表达式和特殊字符而其他函数将字符串转换为数值一个有用的内部函数是 eval()该函数可以对以字符串形式表示的任意有效的 Jscript代码求值eval() 函数有一个参数该参数就是想要求值的代码下面给出一个使用本函数的示例
var anExpression = * % ;
var total = eval(anExpression); // 将变量 total 赋值为
var yetAnotherExpression = * ( % );
total = eval(yetAnotherExpression) // 将变量 total 赋值为
// 将一个字符串赋给 totality (注意嵌套引用)
var totality = eval(surrounded by acres of clams);
有关内部函数的详细信息请参考语言参考
创建自己的函数
在必要的时候可以创建并使用自己的函数一个函数的定义中包含了一个函数语句和一个 Jscript 语句块
下面示例中的 Checktriplet 函数以三角形的边长为参数通过查看三条边的长度是否可以组成一个毕达哥拉斯三元组(直角三角形斜边长度的平方等于其他两条边长的平方和)来计算该三角形是否为直角三角形实际测试时 checkTriplet 函数要调用另两个函数中的一个函数
注意在浮点数测试版本中极小数(epsilon)作为测试变量的使用由于浮点运算的不确定性和捨入误差除非问题中的三个值均已知为整数直接测试这三个数是否组成毕达哥拉斯三元组是不可行的因为直接的测试更为准确本示例中的代码确定其是否可行如果可行则使用它
var epsilon = ; // 一些需要测试的极小数字
// 测试整数的函数
function integerCheck(a b c)
{
// 测试
if ( (a*a) == ((b*b) + (c*c)) )
return true;
return false;
} // 整数检查函数的结尾
// 测试浮点数的函数
function floatCheck(a b c)
{
// 得到测试数值
var delta = ((a*a) ((b*b) + (c*c)))
// 测试需要绝对值
delta = Mathabs(delta);
// 如果差小于 epsilon那么它相当接近
if (delta < epsilon)
return true;
return false;
} // 浮点检查函数的末尾
// 三元检查
function checkTriplet(a b c)
{
// 创建临时变量用于交换值
var d = ;
// 先将最长的移动到位置a
// 需要的话交换 a 和 b
if (b > a)
{
d = a;
a = b;
b = d;
}
// 需要的话交换 a 和 c
if (c > a)
{
d = a;
a = c;
c = d;
}
// 测试全部的 个值看其是否为整数?
if (((a % ) == ) && ((b % ) == ) && ((c % ) == ))
{
// 如果成立使用精确检查
return integerCheck(a b c);
}
else
{
// 如果不成立取尽可能相近的
return floatCheck(a b c);
}
} // 三元检查函数的末尾
// 下面的三个语句赋给范例值用于测试
var sideA = ;
var sideB = ;
var sideC = Mathsqrt();
// 调用函数调用后result 中包含了结果
var result = checkTriplet(sideA sideB sideC);