前端 javascript 练习题--Math、Data及函数封装

简介: 好程序员web前端教程将会为大家持续分享前端javascript练习题系列。Math 对象 1.编写一个函数,获得一个十六进制的随机颜色的字符串(例如:#20CD4F)方法:function f2(){var str="0123456789abcdef";var color="#";for(var i=0;i<6;i++){ var num=Math.

好程序员web前端教程将会为大家持续分享前端javascript练习题系列。
Math 对象
1.编写一个函数,获得一个十六进制的随机颜色的字符串(例如:#20CD4F)
方法:
function f2(){

var str="0123456789abcdef";
var color="#";
for(var i=0;i<6;i++){
    var num=Math.floor(Math.random()*str.length);
    color=color+str[num];
}
console.log(color);}f2();

date对象
数码时钟
思路分析:将时分秒的图片,按照一定规则命名,方便后续根据时间设置图片路径
方法:

<img src="img/0.png" alt="" />
<img src="img/0.png" alt="" />
<span>时</span>
<img src="img/0.png" alt="" />
<img src="img/0.png" alt="" />
<span>分</span>
<img src="img/0.png" alt="" />
<img src="img/0.png" alt="" />
<span>秒</span></div>

function f1(){
    var str="";
    //通过标签获取所有的图片存放在变量imgid中
    var imgid=document.getElementsByTagName("img");
    var oDate = new Date(); //创建时间对象
    var h=oDate.getHours();  //分别去获取当前的时分秒
    var fen=oDate.getMinutes();
    var miao= oDate.getSeconds();
    var h1=h>=10?h:"0"+h;  //保证都是由2位组成
    var fen1=fen>=10?fen:"0"+fen;
    var miao1=miao>=10?miao:"0"+miao;
    str=str+h1+fen1+miao1;  //组合成一个新的字符串
    for(var i=0;i<str.length;i++){  //遍历字符串
        //类比src="img/0.png";
        imgid[i].src='img/'+str[i]+'.png'; //设置每个图片的src路径
    }
}
setInterval(f1,1000);  //定时器  后一个参数以毫秒为单位

函数的封装
封装方法:将函数作为对象的参数
eg1:.判断某年份是否为闰年,将日期格式化输出 “2015|08|24”,获得某个月份的天数,判断两个日期相差的天数,获得N天以后的日期
var dateUtil = {
isLeapYear:function(year){

  if(year%4==0&&year%100!=0 || year%400==0){
     return true;
  }
  return false;

},
formatDate:function(date,str){

  var year = date.getFullYear();
  var month = date.getMonth()+1;
  var day = date.getDate();
  if(month < 10){
     month = "0"+month;
  }
  if(day < 10){
     day = "0" + day;
  }
  var ss = year+str+month+str+day
  return ss;

},
getDays:function(date){

  var year = date.getFullYear();
  var month = date.getMonth()+1;
  switch(month){
     case 2:
        if(dateUtil.isLeapYear(year)){
           return 29;
        }
        return 28;
        break;
     case 4:
     case 6:
     case 9:
     case 11:
        return 30;
        break;
     default:
        return 31;
  }

},
getDiffDays:function(date1,date2){

  //两个日期相减会得到一个相差的毫秒数
  //相差的天时分秒
  var ss = Math.abs((date2-date1)/1000);
  var day = Math.floor(ss/24/3600);
  var hour = Math.floor(ss/3600%24);
  var minute = Math.floor(ss/60%60);
  var second = Math.floor(ss%60);
  return day+"天"+hour+"时"+minute+"分"+second+"秒";

},
getNDays:function(n){

  var oDate = new Date();
  oDate.setDate(oDate.getDate()+n);
  return oDate;

}};
DOM和BOM

相关文章
|
1天前
|
前端开发 JavaScript 数据处理
在JavaScript中,异步函数是指什么
【5月更文挑战第9天】JavaScript中的异步函数用于处理非立即完成的操作,如定时器、网络请求等。它们可通过回调函数、Promise或async/await来实现。示例展示了如何使用async/await模拟网络请求:定义异步函数fetchData返回Promise,在另一异步函数processData中使用await等待结果并处理。当fetchData的Promise解析时,data变量接收结果并继续执行后续代码。注意,调用异步函数不会阻塞执行,而是会在适当时间点继续。
7 0
|
1天前
|
自然语言处理 JavaScript 前端开发
在JavaScript中,this关键字的行为可能会因函数的调用方式而异
【5月更文挑战第9天】JavaScript中的`this`关键字行为取决于函数调用方式。在非严格模式下,直接调用函数时`this`指全局对象,严格模式下为`undefined`。作为对象方法调用时,`this`指向该对象。用`new`调用构造函数时,`this`指向新实例。通过`call`、`apply`、`bind`可手动设置`this`值。在回调和事件处理中,`this`可能不直观,箭头函数和绑定方法可帮助管理`this`的行为。
8 1
|
1天前
|
JavaScript 前端开发 网络架构
JavaScript中的箭头函数是一种新的函数表达形式
【5月更文挑战第9天】JavaScript的箭头函数以简洁语法简化函数定义,其特性包括:1) 不绑定自身this,继承上下文的this,适合回调和事件处理;2) 没有arguments对象,需用剩余参数语法访问参数;3) 不能用作构造函数,无new调用;4) 没有prototype属性,不支持基于原型的继承。箭头函数在特定场景下优化了this处理,但使用时要注意与普通函数的差异。
6 2
|
4天前
|
JavaScript 前端开发
js的一些内置函数
js的一些内置函数
7 1
|
4天前
|
JavaScript 前端开发 索引
js的includes函数
js的includes函数
9 1
|
4天前
|
JavaScript 安全 前端开发
js的map函数
js的map函数
7 0
|
4天前
|
JavaScript 前端开发
js的filter函数
js的filter函数
8 1
|
4天前
|
JavaScript 前端开发
js的函数
js的函数
6 0
|
4天前
|
JavaScript 前端开发
js的join函数
js的join函数
7 1
|
4天前
|
JavaScript 前端开发
js的check函数
js的check函数
8 1