当前位置: 首页 > 图文教程 > Java技术 > Java基础 > Java基础:小编浅谈JavaScript中自定义函数那些事

Java基础
apatche组件的研究和使用
定时执行任务的三种方法
Java各种路径和参数
我看如何选择java和.net
Java关闭窗体的六种方法
java中容易迷惑的知识点
一个简单Thread缓冲池的实现
Java Swing中键盘事件的处理
解读内存优化编程
Java中Set的深入研究
一套JDOM操作XML文件的Base Class
Java堆和栈的区别
Thread类和Runable接口
java 定时执行任务,java定时器
递归(recursion)
java访问各种数据库连接代码
也谈JAVA值传参和引用传参
(转)一个牛人给java初学者的建议
java gui学习
JNI中文处理问题小结

Java基础:小编浅谈JavaScript中自定义函数那些事


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 117 ::
收藏到网摘: n/a

今天小编和大家探讨的是JavaScript自定义函数的用法,下面示例中的 Checktriplet 函数以三角形的边长为参数。通过查看三条边的长度是否可以组成一个毕达哥拉斯三元组(直角三角形斜边长度的平方等于其他两条边长的平方和)来计算该三角形是否为直角三角形。实际测试时 checkTriplet 函数要调用另两个函数中的一个函数。

 

注意在浮点数测试版本中极小数(“epsilon”)作为测试变量的使用。由于浮点运算的不确定性和舍入误差,除非问题中的三个值均已知为整数,直接测试这三个数是否组成毕达哥拉斯三元组是不可行的。因为直接的测试更为准确,本示例中的代码确定其是否可行,如果可行则使用它。

 

var epsilon = 0.00000000001; // 一些需要测试的极小数字。

 

// 测试整数的函数。

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 = Math.abs(delta);

 

   // 如果差小于 epsilon,那么它相当接近。

   if (delta < epsilon)  

      return true;

 

   return false;

} // 浮点检查函数的末尾。

 

 

// 三元检查。

function checkTriplet(a, b, c)

{

   // 创建临时变量,用于交换值

   var d = 0;

 

   // 先将最长的移动到位置“a”。

 

   // 需要的话交换 a b

   if (b > a)

   {

      d = a;

      a = b;

      b = d;

   }

 

   // 需要的话交换 a c

   if (c > a)

   {

      d = a;

      a = c;

      c = d;

   }

 

   // 测试全部的 3 个值,看其是否为整数?

   if (((a % 1) == 0) && ((b % 1) == 0) && ((c % 1) == 0))

   {

      // 如果成立,使用精确检查。

      return integerCheck(a, b, c);

   }

   else

   {

      // 如果不成立,取尽可能相近的。

      return floatCheck(a, b, c);

   }

} // 三元检查函数的末尾。

 

// 下面的三个语句赋给范例值,用于测试。

var sideA = 5;

var sideB = 5;

var sideC = Math.sqrt(50.001);

 

// 调用函数。调用后,'result' 中包含了结果。

var result = checkTriplet(sideA, sideB, sideC);