今天完成的事
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
洗牌算法能保证每个数出现在每个位置的概率都平均
评论