发表于: 2019-05-12 21:14:07

1 948


今天完成的事:js1

任务1的第一种写法

var x = document.getElementsByClassName("box");

function colors() {//rgb颜色随机
   var r = Math.floor(Math.random() * 256);
   var g = Math.floor(Math.random() * 256);
   var b = Math.floor(Math.random() * 256);
   var rgb = 'rgb(' + r + ',' + g + ',' + b + ')';
   console.log(rgb);//输出
   return rgb;
   // 把颜色赋值给函数

}

RGB的随机颜色获取

在256个数字中随机一个数

Math.random 是随机在0~1之间取一个伪随机

math函数库中的一个函数,math.floor(x)返回小于参数x的最大整数,即对浮点数向下取整。x[]的取值。

 var rgb = 'rgb(' + r + ',' + g + ',' + b + ')';

return

return 语句会终止函数的执行并返回函数的值。

然后获取r 的数值

g的数值

 b的数值

 var rgb = 'rgb(' + r + ',' + g + ',' + b + ')';

这里面有一个知识点拼接字符串

var a ="hello"

var b ="word!"

alert(a+b);

heelo word 

此时  Hello 和Word是字符串

var a=2 

varb =3

alert( a+b)

5

这里面是加号不是拼接

var rgb = 'rgb(' + r + ',' + g + ',' + b + ')';

然后拼接成rgb(x,y,z )

然后输出rgb颜色


for (; a == b || b == c || c == a;) {//当abc有任意两个相等,就开始运行,直到没有相等。选择三个不相同的随机数
   var a = Math.floor(Math.random() * 9);
   var b = Math.floor(Math.random() * 9);
   var c = Math.floor(Math.random() * 9);

for循环

条件a==b || b==c || c==a

当a b c

有任意俩个相同就执行for循环直到没有相同的才选取随机数



for (; one == two || two == zhree || zhree == one;) {//判断三个盒子背景颜色是否重复,并给随机的三个盒子赋值上随机背景颜色
   var one = x[a].style.background = colors();
   var two = x[b].style.background = colors();
   var zhree = x [c].style.background = colors();
}

然后就是改变元素样式

这边的定义和上边的选取随机数一样

这里用到了取数组下标 获取数值

for (var i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "#ffa500"; //每次获取随机颜色后恢复默认颜色
}

这里呢就是一个for循环每次随机后把颜色恢复

因为js是从上往下渲染所以会执行

时间函数

setInterval()与setTimeout()计时器

JavaScript是单线程语言,但是它可以通过设置超时值和间歇时间值来指定代码在特定的时刻执行。超时值是指在指定时间之后执行代码,间歇时间值是指每隔指定的时间就执行一次代码。

超时调用使用window对象的setTimeout()方法,它接受两个参数:要执行的代码和以毫秒表示的时间(代码执行前的等待时间)。其中,第一个参数可以是一个字符串(和eval()中使用的字符串一样),也可以是一个函数。

  

  第二个参数是一个表示等待多长时间的毫秒数,但是在该时间过去后代码并不一定执行。JavaScript是一个单线程序的解释器,因此一定时间内只能执行一段代码。为了控制要执行的代码,就有一个JavaScript任务队列。这些任务会按照将它们添加到任务队列的顺序执行。setTimeout()的第二个参数告诉JavaScript再过多长时间把当前任务添加到队列中。如果队列是空的,那么添加的代码则会立即执行;如果队列不是空的,那么添加的代码会在前面的代码执行完毕后再执行。

 
  调用setTimeout()之后,该方法会返回一个数值ID,表示超时调用。这个超时调用ID是计划执行代码的唯一标识符,可以通过它来取消超时调用。取消超时调用使用方法clearTimeout();
  
 
  间歇调用

  间歇调用与超时调用类似,只不过它会按照指定的时间间隔重复执行代码,直至间歇调用被取消或页面被卸载。设置间歇调用的方法是setInterval(),它接收的参数与setTimeout()相同。取消间歇调用的重要性远高于超时调用。

然后点击事件

onclick点击触发

onclick 属性可以使用与所有 HTML 元素,除了 :<base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title>.

onclick 事件会在元素被点击时发生。

然后就是禁止点击

document.getElementById("start").disabled = false;
document.getElementById("start").disabled = true;
  1. 1、$("#id").attr("disabled","false");不起作用
  2. 2、disabled只能禁用button,对超链接不起作用

第二种方法

洗牌算法

这里我只说一下我对洗牌算法的了解

function shuffle() {
var array = [0, 1, 2, 3, 4, 5, 6, 7, 8];
   //定义一个空数组。
   copy = [];
   //n=数组长度
   n = array.length;
   var i;//i就是一个变量名字
   // 如果还剩有元素则继续。。。
   while (n) {
//
       i = Math.floor(Math.random() * array.length);
       // 如果这个元素之前没有被选中过。。
       // if (i in array) {
       copy.push(array[i]);
       // delete array[i];   //没用
       array.splice(i, 1);
       n--;
   }
console.log(copy);
   return copy;
}

先定义一个变量 var=array[ 里面是[ 0,1,2,3]

然后建立一个copy空数组

用来存放取出来的值

定义一个全局变量n等于array.length长度

然后定义一个变量i

执行while循环

i = Math.floor(Math.random() * array.length);

去一个随机数i直到取完

然后吧取出来的i放进coay这个数组里

然后从array这个数组里删除

最后返回copy这个随机数组

其他的和上面的一样

function colors(){
var color="#";
  for(var i=0;i<6;i++){
color += (Math.random()*16 | 0).toString(16);
  };
  console.log(color);
  return color;
}
 for(var i=0;i<6;i++){
color += (Math.random()*16 0).toString(16);
  };


不了解一会问

深度思考

一、数据类型简介:

1.JavaScript(以下简称js)的数据类型分为两种:原始类型(即基本数据类型)和对象类型(即引用数据类型);

2.js常用的基本数据类型包括undefined、null、number、boolean、string;

3.js的引用数据类型也就是对象类型Object,比如:Object、array、function、data等;

1.基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值;

2.基本数据类型的值是不可变的,任何方法都无法改变一个基本数据类型的值,比如一个字符串:

1.number类型

①number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后至少有一位数字)。

2.string类型

①字符串类型中的单双引号作用一样;

②字符串有length属性,可以取得字符串的长度:

  let str = 'Hello world'

  console.log(str.length) // 输出:11

③字符串的值是不可变的,要改变一个字符串的值,首先要销毁原来的字符串,再用另一个包含新值得字符串区填充该字符串;

④字符串转换:

String(),转型函数,适用于任何数据类型(null,undefined转换后为null和undefined)

toString()方法可以把一个逻辑值转换为字符串,并返回结果(null、undefined没有toString()方法)

3.boolean类型

①这个类型只有两个值,true和false;

②Boolean(),转型函数,将某个值转换为Boolean类型

4.null类型

①null类型被看做空对象指针,只有一个值,即null值,所以在用typeof操作符去检测null类型的值得时候,结果是object类型;

②如果你定义了一个变量,但是想在以后把这个对象当做一个对象来使用,最好将该对象初始化为null值

5.undefined类型

①只有一个值,即undefined,如果声明了一个变量,但是未给变量初始化值,那么这个变量的值就是undefined:

  let name = 'zhangsan'

  let age

  console.log(name) // 输出:zhangsan

  console.log(age) // undefined,因为声明了age,但是没有给初始化值

②调用函数时,应该提供的参数没有提供,该参数等于undefined;

③对象没有赋值的属性,该属性的值为undefined;

④函数没有返回值,默认返回undefined。

明天的事:js2


返回列表 返回列表
评论

    分享到