****循环:
问题:在控制台打印输出1000句hello world?
console.log("1hello world");
...
console.log("1000hello world");
生活中的循环?
1、吃饭
2、上课
3、上班
4、自转
5、公转
7、活着
循环结构:反复执行 【相同 或 相似】 的操作
循环三要素:
1、循环条件:开始 到 结束,循环得次数
2、循环变量:记录我们当前在哪一次,而且他一定会不断的变化
3、循环体:做的操作是什么
while循环:
语法:
var 循环变量=几;
while(循环条件){
循环体;
循环变量变化起来
}
执行原理:首先创建了循环变量,判断循环条件,如果条件满足,则执行一次循环体,并不会结束循环,会回过头,继续判断循环条件,满足的话,则再做一次
......
直到循环条件不满足false时,才会退出循环
宏观上看循环感觉一瞬间就结束了,但是微观上看其实是一次一次执行的
特殊:
1、有的时候真有可能需要使用死循环:永远不会停下来的循环
何时使用:不确定循环次数的时候
while(true){
循环体
}
2、退出循环语句:break - 只能用在循环中,多半都是搭配死循环使用的
2、*for循环:和while原理是一样的,但是他比while看上去更加的整洁,简单,舒服
语法:
for(var 循环变量=几;循环条件;循环变量变化起来){
循环体;
}
死循环:
for(;;){
循环体
}
面试题:for 和 while的区别?
几乎没区别:
一般来说我们不确定循环次数的时候,会使用while循环 - 死循环
一般来说我们确定循环次数的时候,会使用for循环 - 大部分情况
for循环案例(求偶数的和)
<script>
//1-1000的和
for(var i=1,sum=0;i<=1000;i++){
sum+=i
}
console.log(sum);
//偶数的和
for (var i=1,sum=0;i<=1000;i++){
if(i%2==0){
sum+=i;
}
}
console.log(sum);
</script>
</body>250500
双重for循环
for(外层的初始化变量;外层的条件表达式;外层的操作表达式){
for(里层的初始化变量;里层的条件表达式;里层的操作表达式){
/、执行语句;
}
}
2、我们可以吧里面的循环看做是外层循环的语句
3、外层循环一次,里面的循环执行全部
4、例子如下
for (var i = 1; i<=3; i++){
console.log("这是外层循环第"+i+"次");
for(var j = 1;j<=3; j++){
console.log("这是里层的循环第"+j+"次");
}
}
九九乘法表 双重for循环案例
九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
function chengfa() {
for (var j = 1; j <= 9; j++) {//j=3 j<=9
for (var i = 1, str = ""; i <= j; i++) {//i=4 i<=3
str = str + i + "*" + j + "=" + i * j + " ";//"1*3=3 2*3=6 3*3=9 "
}
console.log(str);
}
}
数组的基础(重点)
问题:保存1000个同学的姓名?
var name1="杨都1";
...
var name1000="杨都1000";
不推荐,变量其实就是我们所谓的内存,你的变量创建的越多,那么我们开辟的内存空间就越大,消耗也就越大,网站的性能就会越差
解决:数组:创建一个变量可以保存【多个数据】
数组都是线性排列,除了第一个元素,每个元素都有唯一的前驱元素
除了最后一个元素,每个元素都有唯一的后继元素
***每个元素都有一个自己的【唯一的】位置,称之为下标,下标从0开始的,到最大长度-1结束
创建数组
1、*直接量方式:var arr=[];//空数组
var arr=[数据,....];
2、构造函数方式:var arr=new Array();//空数组
var arr=new Array(数据,....);
二、获取数组中的数据:
数组名[i];
三、后续添加/替换元素
数组名[i]=数据;
具体就看i位置有没有数据
四、数组具有三大不限制:
1、不限制元素的个数
2、不限制元素的类型
3、不限制下标越界 - 不是个好东西
如果获取元素时下标越界,得到undefined
如果添加元素时下标越界,得到一个稀疏数组
五、数组有一个唯一的属性:length - 长度
语法:数组名.length;
三个固定套路:
1、向末尾添加元素:arr[arr.length]=数据;
2、获取数组的倒数第n个元素:arr[arr.length-n];
3、缩容:删除数组倒数n个元素:arr.length-=n;
六、往往很多情况,我们不会拿出某个元素来使用,而是拿出所有的元素来进行 相同 或 相似的操作
遍历数组:把数组中的每个元素取出来进行 相同 或 相似的操作
for(var i=0;i<arr.length;i++){
arr[i];//当前次元素
}
例子:var arr=["谢卓铭","沈阳陈","张未来","王江东","聊文物"];
var what=["扣脚","看扣脚","在睡觉","吃饭","吃肉"];
for(var i=0;i<arr.length;i++){
console.log(arr[i]+"正在"+what[i]);
}