问题:在控制台打印一句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越乱越好,你试试找到你想找的元素