<script language="javascript" type="text/javascript"> function jinzhi_chg(){ var num=document.getElementById("in").value; var type=document.getElementById("type"); var tynum,to; for(var i=0;i<type.length;i++){ if(type[i].selected) tynum=parseInt(type[i].value); } switch(tynum){ case(1):to=parseInt(num).toString(2);break; case(2):to=parseInt(num).toString(8);break; case(3):to=parseInt(num).toString(16);break; case(4):to=parseInt(num,2);break; case(5):to=parseInt(num,8);break; case(6):to=parseInt(num,16);break; case(7):to=parseInt(num,2).toString(8);break; case(8):to=parseInt(num,8).toString(2);break; case(9):to=parseInt(num,2).toString(16);break; case(10):to=parseInt(num,16).toString(2);break; case(11):to=parseInt(num,8).toString(16);break; case(12):to=parseInt(num,16).toString(8);break; } document.getElementById("out").value=to; } </script> <select name="type" id="type"> <option value="1">十进制转二进制</option> <option value="2">十进制转八进制</option> <option value="3">十进制转十六进制</option> <option value="4">二进制转十进制</option> <option value="5">八进制转十进制</option> <option value="6">十六进制转十进制</option> <option value="7">二进制转八进制</option> <option value="8">八进制转二进制</option> <option value="9">二进制转十六进制</option> <option value="10">十六进制转二进制</option> <option value="11">八进制转十六进制</option> <option value="12">十六进制转八进制</option> </select> 输入值:<input type="text" id="in" /> 输出值:<input type="text" id="out" disabled="disabled" /> <input type="button" value="开始转换" onclick="jinzhi_chg()" />
confirm() 方法
定义和用法
confirm() 方法用于显示一个带有指定消息和 OK 及取消按钮的对话框。
语法
confirm(message)
参数 描述
message 要在 window 上弹出的对话框中显示的纯文本,即提示信息(而非 HTML 文本)
说明
如果用户点击确定按钮,则 confirm() 返回 true。如果点击取消按钮,则 confirm() 返回 false。
在用户点击确定按钮或取消按钮把对话框关闭之前,它将阻止用户对浏览器的所有输入。在调用 confirm() 时,将暂停对 JavaScript 代码的执行,在用户作出响应之前,不会执行下一条语句。
提示:对话框按钮的文字是不可改变的,因此请小心地编写问题或消息,使它适合用确认和取消来回答。
算法一:循环,一组组合需要几个元素就用几个for(比较笨拙的方法)
示例中是从6个元素中取4个元素进行组合,并显示组合种数和组合列表。
<script type="text/javascript"> var str="01,02,03,04,05,06"; var strArray=str.split(","); var len=strArray.length; var newArray=new Array(); for(var i=0;i<len-3;i++){ for(var j=i+1;j<len-2;j++){ for(var k=j+1;k<len-1;k++){ for(var l=k+1;l<len;l++){ newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]+" "+strArray[l]); } } } } var len2=newArray.length; document.write("组合总个数为:" + len2 + "<br />"); for(i=0;i<newArray.length;i++){ document.write(newArray[i] + "<br />"); } </script>
算法二:可自己设置元素库以及取N个元素进行组合。
JS排列算法(可重复元素)示例:从4个元素中取3个进行排列,并显示共有多少种排列方式
<script type="text/javascript"> var str="01,02,03,04"; var strArray=str.split(","); var len=strArray.length; var newArray=new Array(); for(var i=0;i<len;i++){ for(var j=0;j<len;j++){ for(var k=0;k<len;k++){ newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]); } } } var len2=newArray.length; document.write("排列方式种类有:" + len2 + " 种<br />"); for(i=0;i<newArray.length;i++){ document.write(newArray[i] + "<br />"); } </script>
以上代码采用FOR循环方式,一组排列需要几个元素就用几个for
全排列是一种时间复杂度为:O(n!)的算法。所有算法均使用JavaScript编写,可直接运行。
算法一:循环,一组排列需要几个元素就用几个for(比较笨拙的方法)
<script type="text/javascript"> var str="01,02,03,04"; var strArray=str.split(","); var len=strArray.length; var newArray=new Array(); for(var i=0;i<len;i++){ for(var j=0;j<len;j++){ if(j!=i){ for(var k=0;k<len;k++){ if(k!=i && k!=j){ for(var l=0;l<len;l++){ if(l!=i && l!=j && l!=k){ newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]+" "+strArray[l]); } } } } } } } var len2=newArray.length; document.write("排列方式种类有:" + len2 + " 种<br />"); for(i=0;i<len2;i++){ document.write(newArray[i] + "<br />"); } </script>
算法二:交换算法(递归)
示例一:JS输出前20个斐波那契数列(使用递归算法)
<script type="text/javascript"> function f(x){return x<1?0:(x<3?1:f(x-1)+f(x-2));} for(var i=0;i<20;i++){ document.write(f(i) + ", "); } </script>
输出结果:
求n~阶加1+2+3+...+n 的和(使用递归算法)
求阶乘n! 即,1×2×3×4×5×······×n(使用递归算法)
代码:n为自定义函数名称
function n(i){return i<2?1:i*n(i-1);}
另一种写法:
JS后退、返回上一页、返回上一步代码:
window.history.go(-1) 可简写为: history.go(-1) window.history.back() 可简写为: history.back()
JS前进代码:
一、submit提交表单
<form action="?" name="form1" id="form1"> <!-- 表单内容 --> <input type="submit" value="提交表单" /> </form>
二、JS提交表单:普通button按钮提交
一、toFixed() 方法
定义和用法
toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
语法
NumberObject.toFixed(num)
参数 描述
JS定时器 setInterval() 方法: 使一段代码每过指定时间就运行一次。
JS延迟器 setTimeout() 方法:使一段代码在指定时间后运行。
定义:
window.setInterval(expression,millisec); window.setTimeout(expression,millisec);
参数介绍:
JS Date 对象用于处理日期和时间。
创建 Date 对象的语法:
var myDate=new Date()
注释:Date 对象会自动把当前日期和时间保存为其初始值。
参数形式有以下5种:
new Date("month dd,yyyy hh:mm:ss"); new Date("month dd,yyyy"); new Date(yyyy,mth,dd,hh,mm,ss); new Date(yyyy,mth,dd); new Date(ms);
注意最后一种形式,参数表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。各种函数的含义如下: