2022-07-12 第七组 姜珊 学习笔记
循环 4种循环
1.for 循环
语法
for(let i = 0;i < 10;i++){
循环体
console.log(i);
}
for循环的特殊写法
for(;;){
}
for(let i = 0;;){
}
for(let i = 0;;i++){
}
for(let i = 0; i < 10;){
}
1.let i = 0;初始化条件,当i=0时,循环开始,只走一次,第一次循环开启之前初始化
2.i < 10;判断条件,会和初始化条件配合循环的执行,决定了循环什么时候停止
3.循环体,循环在重复做什么事情
4.i++ 循环条件,每次循环体执行完毕让i产生变化
面试题:for循环的执行步骤
a.i可以看做是一个局部变量
b.循环条件是可以根据实际情况更改的
c.当修改循环条件时,要确保循环可以向着终点前进去改变
d.我们在开发中,尽量避免死循环
当变量的作用域出现了重叠,不要出现重名的情况。 尤其是全局和局部,变量最好不好重名
例
判断一个数在数组中是否存在,如果存在,返回它的下标如果不存在,返回-1
function exists(num,array){
let index = -1;
for(let i = 0;i < array.length;i++){
if(array[i] == num){
index = i;
}
}
return index;
}
console.log(exists(100,arr));
数组有一个属性length-长度
长度:数组中有多少个元素
注意区分长度和下标(索引)
取出数组中的最后一个元素,不能是undefined
把数组中的每个元素都操作一遍,数组的遍历(迭代)
for in语句:
能做得事情较少,只能做遍历操作,可以理解为a是arr数组的下标通过映射给a
for(let a in arr){
console.log(arr[a]);
}
while循环 do...while循环
语法
function hello(){
let a = 10;
while(a < 100){
console.log(a);
a++;
}
return a;
let a = 10;初始化条件
a < 100 循环判断条件
打印输出 循环体
a++ 循环条件
while循环的执行流程:
1.初始化条件
2.判断条件
3.执行循环体
4.自增
while循环 PK for循环
初始化条件不好控制 每个for循环的初始化条件都是隔离的
循环条件不好控制 每个for循环的a++都是隔离的
写函数时,返回值便于管理
例今年是2022年。
今天我们公司有10个人
每年公司会以百分之10的比重招人
问:哪一年公司人数突破100人。
function count(){
let year = 2022;
let sum = 10;
while(sum <= 100) {
sum *= 1.1;
year++;
}
return year + "年人数超过了100人,人数是:" + sum;
console.log(count());
do...while循环
let a = 10;
while(a == 10){
}
do {
console.log(a);
a++;
} while (a > 100);
let a 初始化条件
do做什么事
log循环体
a > 100判断条件
a++循环条件
do...while和while的区别:
do...while先执行一次,再判断。无论条件是否成立,至少执行一次
while:如果条件不成立,一次都不走
死循环:
for(;😉{}
while(true){}
do{}while(true);
JS内置函数
Array:
1.concat()连接
2.join('-')设置分隔符连接数组为一个字符串
3.pop()删除最后一个元素
4.sort()排序,从小到大排序
Global:
1.isNaN():判断一个值是不是数字
2.parseFloat():把一个整数转换成小数
3.parseInt():把一个小数转成整数,取整
4.number():把一个值转成number类型
5.string():把其他类型转成字符串110 120 119
String:
1.charAt(1):取出指定位置的字符
2.indexOf('a'):判断指定的字符是否存在,如果存在返回下标,如果不存在,返回-1
3.lastIndexOf('a'):从后往前找
4.replace('a','b'):替换字符串
5.split('-'):根据-去拆分字符串,得到一个数组
6.substring(1,6):字符串截取
Math:
1.ceil()向上取整
2.floor()向下取整
3.round()四舍五入
4.random()随机,生成一个0-1的随机数
5.tan() sin cos cot
6.E PI
Date:
1.new Date();获取系统当前日期
2.getDate():返回日期的日 1~31
3.getHours():返回时间中的时0~23
4.getMinutes():返回时间中的分
5.getSeconds():返回时间中的秒
6.getTime():获取系统当前时间
7.getYear():获取年
元素结点:
1.根据id去抓取HTML元素
let div1 = document.getElementById("div1");
console.log(div1);
2.根据class抓取HTML元素,得到的时一堆元素
let divs = document.getElementsByClassName("div1");
console.log(divs[0]);
3.根据tag抓取HTML元素,得到的是一堆元素
let divs = document.getElementsByTagName("div");
console.log(divs[0]);
新方法
1.根据选择器去抓取一个元素
let div = document.querySelector('.div2');
console.log(div);
2.根据选择器去抓取全部元素
let divs = document.querySelectorAll('.div1');
console.log(divs[0]);
let div = document.querySelector("div");
- 获取元素内部的文本,不会获取到内部的HTML标签
console.log(div.innerText);
4.获取元素内部的所有内容,包括HTML标签
console.log(div.innerHTML);
改变元素的内容
div.innerText = "<h1>我是通过JS来的</h1>";
div.innerHTML = "<h1>我是JS来的</h1>";
let username = document.querySelector("#username");
username.value = "我是JS来的";
事件
事件就是当我们和HTML标签元素发生交互时产生的行为
onclick:单击事件
ondblclick:双击事件
onblur:失去焦点
onfocus:获得焦点
onchange:改变
onload:加载
今日总结
1.循环-流程控制(4种)了解,嵌套理解有困难
2.内置函数:了解
3.事件:理解
心得:知识点单看都理解,但是组合在一起就理解有一点困难比如,循环判断事件组合嵌套。当提出需求是自己很难打出一个程序