最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

介绍JS入门小案例

来源:动视网 责编:小采 时间:2020-11-27 19:36:39
文档

介绍JS入门小案例

介绍JS入门小案例:计算第几天?1,年份算是否是闰年,确认2月份的天数 2,得到每个月的天数,可以放数组里 3,根据月份得到当前月份的天数 4,根据日期加3得到的天数就ok了。function isLeapYr(yr) { //判断闰年 return (yr % 4 === 0 && yr
推荐度:
导读介绍JS入门小案例:计算第几天?1,年份算是否是闰年,确认2月份的天数 2,得到每个月的天数,可以放数组里 3,根据月份得到当前月份的天数 4,根据日期加3得到的天数就ok了。function isLeapYr(yr) { //判断闰年 return (yr % 4 === 0 && yr


计算第几天?

1,年份算是否是闰年,确认2月份的天数
2,得到每个月的天数,可以放数组里
3,根据月份得到当前月份的天数
4,根据日期加3得到的天数就ok了。

function isLeapYr(yr) {
 //判断闰年
 return (yr % 4 === 0 && yr % 100 !== 0) || (yr % 100 === 0 && yr % 400 === 0);
}function count(y, m, d) {
 var mdays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var mSum = 0; var sum = 0; //如果是闰年的话,那么2月份就应该有29天
 isLeapYr(y) ? mdays[1] = 29 : mdays[1]; //计算该月份之前的总天数,比如m=3,那么就计算1和2月的总天数
 for (var i = 0; i < m - 1; i++) {
 mSum += mdays[i];
 } //加上当月天数
 sum = mSum + d; return sum;
}
 //弹出年、月、日输入框,声明年鱼儿,并赋值
 var y =parseInt(prompt("请输入你的出生年份")); var m = parseInt(prompt("请输入你的出生月份")); var d =parseInt(prompt("请输入你的出生日期")); //月
 //求各月份数字之和
 var getMonth=new Array(31,28,31,30,31,30,31,31,30,31,30); var sum1=0,i; for(i=0;i<m-1;i++){
 sum1+=getMonth[i]
 } //年
 //判断年是否为闰年,是且大于2月份加一
 if(( y%400 ==0||(y % 4 == 0&& y%100 !=0))&& m > 2){
 sum=sum1 + d +1;
 document.write("该天为一年中的第"+sum+"天");
 }else{
 sum=sum1+d;
 document.write("该天为一年中的第"+sum+"天");
 }

利用时间函数进行计算

var now = new Date();//输入日期以今日为例var NewYearsDay = new Date(now.getFullYear(), 0, 0, 0, 0, 0);//该年第一天console.log((now.getTime()-NewYearsDay.getTime())/86400000>>>0)//算出两者的时间戳之差就是时间差的微秒数 再用时间差除以天的微秒数86400000 取整 就是第几天
var endDate = new Date(y, m-1, d),
 startDate = new Date(y, 0, 0),
 days = (endDate - startDate) / 1000 / 60 / 60 / 24;
document.write("该天为一年中的第"+ days +"天");

JS实现阶乘

//while循环实现function calNum(n) {
 var product = 1; while(n > 1){//1*5*4*3*2,1*n*(n-1)*(n-2)*...*2
 product *= n;
 n--;
 } return product;
}
console.log(calNum(5))
//for循环实现
 function calNum(n){
 var a = 1, str = '1*'; for (var i = 2; i <= n; i++) { str += i + '*';
 a *= i;
 } str = str.substr(0,str.length-1); return str + '=' +a;
 }
 console.log(calNum(5));

判断素数

var prime = function(len){
 var i,j;
 var arr = []; for(i = 1; i < len; i++){
 for(j=2; j < i; j++){ 
 if(i%j === 0) {
 break;
 }
 } if(i <= j && i !=1){
 arr.push(i);
 }
 } return arr;
};console.log(prime(100));

js斐波那契数列求和

递归算法

时间复杂度为O(2^n),空间复杂度为O(n)

 function recurFib(n) {
 if (n < 2) { return n;
 } else { return recurFib(n-1) + recurFib(n-2);
 }
 }
 alert(recurFib(10));//将显示55

动态规划

时间复杂度为O(n),空间复杂度为O(n)

 function dynFib(n) { var res = [1,1]; 
 if (n == 1 || n == 2) { return 1;
 } for (var i = 2; i < n; i++) { val[i] = val[i-1] + val[i-2];
 } return val[n-1];
 }
 alert(dynFib(10));//将显示55

迭代法

时间复杂度为O(n),空间复杂度为O(1)

 function iterFib(n){
 var last=1; var nextlast=1; var result=1; for(var i=2;i<n;i++){
 result=last+nextlast;
 nextlast=last;
 last=result;
 } return result;
 }
 alert(iterFib(10));//将显示55

质数

function foo(n){ 
 var a=[],state=0; 
 for(var i=2;i<n;i++){ 
 var sqrt_i = Math.sqrt(i); 
 if(i%sqrt_i===0){ 
 continue; 
 } 
 for(var j=2;j<sqrt_i;j++){ 
 if(i%j===0){ 
 state=1; 
 break; 
 }else{ 
 state=0; 
 } 
 } 
 if(state===0){ 
 a.push(i); 
 } 
 } 
 console.log(a); 
} 
foo(100)

本文讲解了JS入门小案例,更多相关内容请关注Gxl网。

文档

介绍JS入门小案例

介绍JS入门小案例:计算第几天?1,年份算是否是闰年,确认2月份的天数 2,得到每个月的天数,可以放数组里 3,根据月份得到当前月份的天数 4,根据日期加3得到的天数就ok了。function isLeapYr(yr) { //判断闰年 return (yr % 4 === 0 && yr
推荐度:
标签: 介绍 初学者 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top