发表于: 2020-01-31 01:56:21

1 1191


今天完成的事

1.在这段时间买了一本《Web前端开发精品课 Javascript基础教程》看了大半 

很好的入门数 对于JS有了初步了理解 

学会了一些简单的使用 


2.根据学到的知识完成了给九个元素中随机三个添加随机颜色的效果 首先获取随机颜色的数组

var m = 3;                                      //设置变量m为要获取几组随机颜色值
var rgbs = [];                                  //先设置一个空数组rgbs
for(var i=0;i<m;i++){                           //根据要获取几组颜色值来循环几次 m=几组 初始i为0 循环一次i+1 直至大于m跳出循环
    var r = Math.ceil(Math.random()*(255+1));   //获得0-255的随机整数
    var g = Math.ceil(Math.random()*(255+1));
    var b = Math.ceil(Math.random()*(255+1));
    var rgb = "rgb("+r+","+g+","+b+")";         //将获得的整数组成RGB值
    rgbs.push(rgb);                             //每次都在数组后添加元素 循环3次就是添加3个元素
}


3.依据网上的教程和自己的理解完成了一个洗牌算法

//洗牌算法
Array.prototype.shuffle = function(){                       //将洗牌算法挂载在Array原型下 方便调用
    var input = this;                                       //这一步没理解=this是什么意思 初步理解为input等于当前对象
    for(var i=input.length-1;i>=0;i--){                     //i等于当前对象的长度-1,也就是最后一位 i大于等于0时循环 每次i-1
        var randomIndex = Math.floor(Math.random()*(i+1));  //获得一个(i+1)的随机数也就是与input.length等值
        var itmeatindex = input[randomIndex];               //取一个数来保存数组中下标为randomIndex的元素
        input[randomIndex] = input[i];                      //将数组中原来下标为randomIndex的元素赋值成最后一位的元素
        input[i] = itmeatindex;                             //将最后一位的元素赋值成原下标为randomIndex的元素
    }
    return input;                                           //输出input
}


4.获取一个min到max的自然整数的数组并取前n个元素

//设定一个函数以及参数min、max分别为随机数的最小值最大值 n为数组的长度
function ran(min,max,n){        //设置一个函数并设有变量min、max、n
    var rnum = [];              //取一个局部变量空数组
    for(i=0;i<(min+max+1);i++){ //获得min到max的自然整数 
        rnum[i]=i;              //使数组rnum中下标i的元素赋值为i
    }
    Rnum = rnum.shuffle();      //将获得的自然整数数组rnum顺序打乱 使用shuffle()方法 
    rnum = Rnum.splice(min,n);  //取Rnum数组里前(n-1)个元素 赋值rnum 
    return rnum;                //输出rnum
}


5.根据需要输入参数并执行函数

var RANDIV = ran(0,8,3);        //输入参数 九个div,所有min为0 max为8 修改三个 n为3



6.修改页面随机三个元素的颜色 

window.onload = function() {                            //页面加载完成后执行
    var oDiv = document.getElementsByTagName("div");    //将获得的div集合赋值给oDiv 获得一个类数组
    for(i=0;i<3;i++){                                   //因为要修改三个div 循环三次
        oDiv[RANDIV[i]].style.backgroundColor = rgbs[i];//将九个元素对象中三个修改为随机颜色 
    }
}



明天的计划

1.继续学习《Web前端开发精品课 Javascript基础教程这本书 将基础打牢

2.学习

JavaScript中SetInterval与setTimeout用法

这部分知识 

3.完成延时自动修改页面元素颜色的效果

4.完成两个按钮onclick事件的绑定

5.将onclick事件与执行函数连接起来

6.多次运行查看有无bug


遇到的问题

1.

    var input = this;                                       //这一步没理解=this是什么意思 初步理解为input等于当前对象

洗牌算法中这个不太理解是什么意思 将当前对象赋值给一个变量?

应该后面学到Array对象时会理解



今天的收获

1.学习了JS的基础知识l

理解了变量 字符串 数字 数组 数值对象 DOM对象 节点等等这些概念 并懂得初步运用


2.学习了洗牌算法 并理解了其中原理 

 https://www.jb51.net/article/81373.htm

洗牌算法能保证每个数出现在每个位置的概率都平均





返回列表 返回列表
评论

    分享到