1、****循环

106 阅读6分钟

问题:在控制台打印一句1000句hell哦world

循环结构:反复执行 相同或者相似的操作

循环三要素:

1.循环条件,开始-结束-循环的次数

2.循环体:做的操作

3:循环变量:记录着·我们做到哪一步,而且他会不断的变化

1、while循环

语法:

var 循环变量 = 值;

while(循环条件){

循环体;

循环变量发生变化;

}

执行原理:

首先创建了循环变量,判断循环条件,如果满足条件,则做一次循环体操作,并不会退出循环;

再次判断是否满足条件,若满足则再做一次循环体;

直到不满足为false时,才会退出循环

注意:循环是一次一次做的

特殊:

1、死循环

使用:不确定使用次数的时候

while(true){

死循环

}

2、退出循环语句

break; - 只能用在循环之中,一般搭配死循环使用

2、for循环

for循环和while循环的原理是一样的,但是比while看上去更加的简洁

语法:

for(var 循环变量=值;循环条件;循环变量发生变化){

循环体;

}

死循环:

for(;;){

死循环;

}

面试题:while和for的区别?

while和for几乎没有区别:

一般来说在不确定循环次数的时候,会使用while循环 - 死循环

一般来说确定循环次数的时候,会使用for循环 - 更漂亮简洁,大部分情况


2022年6月16日

一、数组*****

问题:保存一个同学的名字?

var name ="宝批龙";

...

var name ="宝批龙1000";

变量其实就是所谓的内存,变量创建得越多,内存空间消耗就越大,性能就会越差

解决:

数组:创建一个变量可以保存多个数据

数组都是线性排列,除了第一个元素,每个元素都有唯一的前驱元素;除了最后一个元素,都有唯一的后继元素。

注意:每个元素都有一个自己的元素,称之为下标。下标从0开始,到最大长度-1结束

1、创建数组(2种)

1)直接量方式:*

var arr=[]; //空数组

var arr=[数据1,数据2,...]; 

2)构造函数方式:

var arr = new Array(); //空数组

var arr = new Array(数据1,数据2,...);  //有坑

2、获取数组之中的数据:

数组名[i];  //i -> index -> 索引

3、后续添加/替换元素

数组名[i]=新数据;

如果下标没有数据,则为添加;如果下标有数据,则为替换。

4、数据有三大不限制

1)不限制元素的类型

2)不限制元素的个数

3)不限制元素的下标越界 - 这是一个缺点:

如果获取元素,下标越界,返回的是一个undefined

如果添加元素,下标越界,会得到一个稀疏数组,如果搭配上循环去获取每个元素,则会出现很多undefined

问题:自己数下标是不科学的,容易出错

5、解决:数组中有一个唯一的属性

如何使用:数组名.length;

作用:获取数组的长度,长度是从1开始的

三个固定的套路:

1)向末尾添加元素:arr[arr.length]=新值;

2)获取数组的倒数第n个元素:arr[arr.length-n];

3)缩容:删除倒数n个元素:arr.length-=n;

***6、很多情况,我们不会拿出某个元素来使用,而是拿出所有的每个元素来进行相同或相似的操作

遍历:把数组中的每个元素取出来执行相同或相似的操作

公式:

for(var i=0;i<数组名.length;i++){

数组名[i]

}

扩展:

JavaScript由三部分组成:

1、ECMAScript - 核心语法,内功心法

2、DOM - Document Objest Model - 文档对象类型,文档:HTML、CSS - JS操作页面元素

3、BOM - Browser Objest Model - 浏览器对象模型(外功招式)

1、DOM:Document Object Model:文档对象模型:专门用于操作HTML文档的,提供了一些方法

2、DOM树概念:*DOM将我们的HTML看做了是一个倒挂的树状结构,但是树根不是html标签,而是document对象

document对象:不需要我们程序员创建,由浏览器的js解释器自动创建,一个页面只有一个document

作用:可以通过树根去找到我们想要的任何一个DOM元素/节点/对象(属性和方法)

DOM会将页面上每个元素、属性、文本、注释都当做是一个DOM元素/节点/对象

3、查找元素:

1、通过ID找元素:

var elem=document.getElementById("id值");

特殊:

1、返回值:找到了返回当前找到的DOM元素,没找到返回是一个

2、找到了返回的也只是第一个id的元素

1、DOM:Document Object Model:文档对象模型:专门用于操作HTML文档的,提供了一些方法

2、DOM树概念:*DOM将我们的HTML看做了是一个倒挂的树状结构,但是树根不是html标签,而是document对象

document对象:不需要我们程序员创建,由浏览器的js解释器自动创建,一个页面只有一个document

作用:可以通过树根去找到我们想要的任何一个DOM元素/节点/对象(属性和方法)

DOM会将页面上每个元素、属性、文本、注释都当做是一个DOM元素/节点/对象

3、查找元素:

1、通过ID找元素:

var elem=document.getElementById("id值");

特殊:

1、返回值:找到了返回当前找到的DOM元素,没找到返回是一个

2、找到了返回的也只是第一个id的元素

2、*通过标签名找元素:

var elems=document/已经找到了的父元素.getElementsByTagName("标签名");

特殊:

1、返回值:找到了返回一个类数组DOM集合,没找到返回的是一个空数组

2、JS只能直接操作DOM元素,不可以直接操作DOM集合,解决:要么使用下标拿到某一个元素,那么使用遍历拿到每一个的元素

3、不一定非要从document开始查找,如果从document去找,会找到的所有的元素,可以换成我们已经找到的某个元素

3、*通过class名找元素:

var elems=document/已经找到了的父元素.getElementsByClassName("class名");

特殊:

1、返回值:找到了返回一个类数组DOM集合,没找到返回的是一个空数组

2、JS只能直接操作DOM元素,不可以直接操作DOM集合,解决:要么使用下标拿到某一个元素,那么使用遍历拿到每一个的元素

3、不一定非要从document开始查找,如果从document去找,会找到的所有的元素,可以换成我们已经找到的某个元素

4、通过关系找元素:前提条件:必须先找到一个元素才可以调用关系网

父元素:elem.parentNode; - 单个元素

子元素:elem.children; - 集合

第一个子元素:elem.firstElementChild; - 单个元素

最后一个子元素:elem.lastElementChild; - 单个元素

前一个兄弟:elem.previousElementSibling; - 单个元素

后一个兄弟:elem.nextElementSibling; - 单个元素

作业:

1、上午的练习

2、查找元素,你随便写一个HTML越乱越好,你试试找到你想找的元素

作业:

1、上午的练习

2、查找元素,你随便写一个HTML越乱越好,你试试找到你想找的元素