Javascript怎么实现Math.sqrt函数

JavaScript013

Javascript怎么实现Math.sqrt函数,第1张

//自定义 Math 类<br>var MyMath=(function(){<br>

var diff=0.00000000001//精度<br>

var GetSqrt= function(n){ <br>

var s = n / 2//假设的平方根初值 <br>

while (NotFit(s,n)) { <br>

s = ((n / s) + s) / 2<br>

} <br>

return s<br>

},NotFit=function( num, n){ <br>

var r= num*num<br>

var d = Abs(n - Abs(r))<br>

if(d>diff){ <br>

return true<br>

}<br>

return false<br>

},Abs=function(a){<br>

if(a>=0 )return a<br>

else return -a<br>

}<br><br>

return {<br>

sqrt:GetSqrt,<br>

abs:Abs<br>

}<br>})()<br><br>//sqrt<br>alert(MyMath.sqrt(0))//0<br>alert(MyMath.sqrt(1))//1<br>alert(MyMath.sqrt(9))//3<br><br>//abs<br>alert(MyMath.abs(-4))//4上面的代码自己测试可以运行

<%@page contentType="text/htmlcharset=gbk" %>

<html>

<head>

<script>

function show(){

var maxRow =10

var strTbl = "<table border='1'><tbody>"

var strTbody = ""

strTbody+="<tr align='center'><th>给定数字</th><th>平方值</th><th>立方值</th><tr>"

for(var i = 0i <=maxRowi++){

strTbody +="<tr align='center'>"

strTbody+="<td>"+i+"</td><td>"+i*i+"</td><td>"+i*i*i+"</td>"

strTbody += "</tr>"

}

strTbl = strTbody + "</tbody></table>"

document.getElementById("tableDiv").innerHTML = strTbl

}

</script>

</head>

<body onload="show()">

<div id="tableDiv"></div>

</body>

</html>

return什么值和这个函数是否一直执行没有关系。

return的作用是返回函数处理后得到的值,然后在调用函数的位置去使用。比如:

function sqr(x){ //这个是个平方函数

return x*x

}

alert(sqr(5))//这里调用了sqr函数,返回的值是5的平方

如果你的函数并没有用到返回值,那么返回什么东西没有关系,只是给自己看看,有个大概的意思就可以了。哪怕你不返回值,直接写 return 是一样的。

return还有一个作用,就是当函数出现return的时候,返回值,并且终止函数。因为得到最后想要的值了,所以,当return语句执行的时候,函数终止。

你的这第二个函数之所以能够一直不停的运行是因为setTimeout()函数,这个函数能够在固定的时间后运行js代码。

setTimeout( "要运行的js代码" , 延时单位毫秒 )

第一个函数在初始化完元素 5秒后运行第二个函数;

第二个函数每10毫秒运行一次,让这个元素的left属性靠近200px top属性靠近100px,如果你把第一个函数中的100px换成比100小的或者其他的值,你就会看见这个元素是向右下角移动,然后平移。一直到left为200,top为100为止,return返回,最后一次函数不运行setTimeou