如何理解下列的代码(javascript中的)

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:45:55
<script language="javascript" type="text/javascript">
function showData(object)
{
for(var sp in object)
{
document.write(object[sp]);
}
}
function makeArray(n)
{
this.length=n
return this
}
function hexfromdec(num)
{
hex=new makeArray(1);
var shifthex=16;
var temp1=num;
for(x=1;x>=0;x--)
{
hex[x]=Math.round(temp1/shifthex-.5);
hex[x-1]=temp1-hex[x]*shifthex;
temp1=hex[x-1];
shifthex /= 16;
}
for(x=1;x>=0;x--){hexstring += getletter(getletter(hex[x]));}
return (hexstring);
}
function getletter(num)
{
if(num < 10){return num;}
else
{
if(num < 10){re

晕,终于看懂了,其实你把function sizefont(text)以上的函数删了这个程序一样可以运行,因为就没有用到上面的那些函数。

我大概给你说下各个函数的作用:
sizefont(text)函数主要就是控制“这是一个获取WEB浏览器的程序”这句话输入时的字体大小,函数里面j变量专门用来控制字体大小,见代码"<FONT SIZE = "+ j +">" + text.substring(i,i+1) + "</FONT>"。最终的是按山峰的形式输出。即j的值从1到6,再从6到0,再从1到2。

showData(object) 函数就没得用,估计是作者写代码的时候测试用的。

makeArray(n)、hexfromdec(num) 、getletter(num)、rainbow(text) 这几个函数其实就是合起来实现一个功能,把从rainbow(text)函数中获取的text值按彩色字体输出,我估计是作者是想用#ffffff这样的形式对字体颜色赋值,如代码"<FONT COLOR="+ color_h1 +"ff"+ color_h1 +">"+ text.substring(i,i+2)+"</FONT>",所以需要用hexfromdec(num)来生成16进制的数,makeArray(n)和getletter(num)则是辅助hexfromdec(num)来实现这个目的。可惜不幸的是作者在hexfromdec(num)函数中犯了一个小错误,所以调用rainbow(text)函数会出问题。具体代码我也没有详细检查了,如果有需要帮忙的地方到我空间留言就可以了。

哦,以下代码我就不用详细解释了吧,一看就知道是输出浏览器信息
document.write("浏览器名称:"+navigator.appName+"<br>");
document.write("版本号:"+navigato