目前在从事前端工作,特别总结javaScript基础知识供大家学习,本人特总结一下使用方法献给目前正在学习web前端的小伙伴们,希望你们在前端领域闯出属于自己的一片天空来,需要sublime软件安装包的或者前端资料的可以留言
一、循环语句
循环语句:重复执行一段代码,执行遇见某个指令(条件为假),结束循环语句
for循环,do while, while, for in语句
2.1 for循环语句
for循环是前测试循环语句:先判断条件是否满足,当满足条件时,才执行循环语句。直到条件为假结束循环语句。
for语句比较灵活。
for(循环变量初始值; 条件表达式 ; 步长){
循环语句;
}
原理:for循环判断条件表达式,当条件表达式为真时执行循环语句,直到条件为假时跳出循环。结束循环后再执行for循环后面的语句。
第一次执行:
先执行且只执行一次语句1,然后进行条件的判断语句2,如果满足循环条件,向内执行循环语句3,然后执行语句4变量的改变;如果不满足条件,结束for循环,执行for循环后面的其他js语句;
第二次执行:如果能执行语句4,继续执行语句2,判断判断条件表达式是否满足,如果满足循环条件,向内执行循环语句3,然后执行语句4变量的改变;如果不满足条件,结束for循环,执行for循环后面的其他js语句;
……
当条件为真时,重复执行语句2,语句3,语句4.直到条件为假时,执行后面的其他js语句。(只要想执行循环语句3必须先判断2是满足条件)
可以直接根据for原理的到结果。
1 for(var i = 3; i < 13; i +=3 ) {
2 console.log(i);
3 }
4 console.log("结束");
5 /*
6 第一次执行:i=3,i<13真,才执行循环语句,输出3
7 第二次执行:i=6,i<13真,执行循环语句,输出6
8 第三次执行:i=9,i<13真,执行循环语句,输出9
9 第四次执行:i=12,i<13真,执行循环语句,输出12
10 第五次执行:i=15,i<13假,当循环条件为假,才结束for循环
11 for循环结束才执行后面的其他js语句
12 输出“结束”
13 */
for循环中的变量称为循环变量,可以是任意的名字,一般我们习惯书写i,j,k
循环变量是全局变量。可以在任何地方书写,可以书写在for循环外面或者里面。
1 // 2循环变量是全局变量,循环语句有可能一次都不执行
2 var i = 3;
3 for(console.log(++ i); i < 1 ; i ++) {
4 console.log(i);
5 }
6 /*
7 第一次执行:i= 3,语句1只会执行一次输出4,i<1假,结束for循环
8 */
语句2可以书写为任何条件表达式,只要可以判断真假就可以。
1 // 语句2可以书写成任意形式
2 for(var i = 4; i != 10; i += 3) {
3 console.log(i);
4 }
5 /*
6 第一次执行:i=4, i!=10真,执行循环语句输出4
7 第二次执行:i=7, i!=10真,执行循环语句输出7
8 第三次执行:i=10, i!=10假,立即结束循环
9 */
循环语句可能会一直循环,这种是死循环。
1 // 当循环条件为真,循环语句会一直执行
2 for(var i = 1; i >= 0 ; i ++) {
3 console.log(i);
4 }
1 for(var i = 3; i < 10 ; i += 3) {
2 console.log(i);
3 }
4 console.log(i);
5 /*
6 第一次执行:i=3,i<10真进入循环语句输出3
7 第二次执行:i=6,i<10真进入循环语句输出6
8 第三次执行:i=9,i<10真进入循环语句输出9
9 第四次执行:i=12,i<10假,立即结束循环语句
10 执行后面的其他js语句
11 console.log(i)12
12 */
for循环里面的循环语句也可以书写为if语句,if结构体想执行必须同时满足for循环条件和if语句的条件。
1 for(var i = 4; i < 25 ; i +=4) {
2 // 当i<25,同时i能被5整除才输出i
3 if(i % 5 == 0) {
4 console.log(i);
5 }
6 }
7 console.log(i);
8 /*
9 第一次执行:i=4,i<25真,进入循环语句if判断i%5==0假结束if语句3;
10 第二次执行:i=8,i<25真,进入循环语句if判断i%5==0假结束if语句3;
11 第三次执行:i=12,i<25真,进入循环语句if判断i%5==0假结束if语句3;
12 第四次执行:i=16,i<25真,进入循环语句if判断i%5==0假结束if语句3;
13 第五次执行:i=20,i<25真,进入循环语句if判断i%5==0真执行if语句输出20;
14 第六次执行:i=24,i<25真,进入循环语句if判断i%5==0假结束if语句
15 第七次执行:i=28,i<25假,结束for循环语句
16 执行后面的其他js语句输出i=28
17 */
for循环嵌套for循环,一层一层去执行,每一层for循环变量不同。
1 for(var i = 1 ; i < 4; i ++) {
2 for(var j = 1; j < 4 ; j ++) {
3 console.log(i,j);
4 }
5 }
6 console.log(i,j);
7 /*
8 第一次:i=1,i<4真,进入循环语句j=1,j<4真,(1,1),j++
9 j=2,j<4真,(1,2),j++
10 j=3,j<4真,(1,3),j++
11 j=4,j<4假结束j循环
12 第*次:i=2,i<4真,进入循环语句,j=1,j<4真(2,1)j++
13 j=2,j<4真,(2,2),j++
14 j=3,j<4真,(2,3),j++
15 j=4,j<4假结束j循环
16
17 第*次:i=3,i<4真,进入循环语句,j=1,j<4真(3,1)j++
18 j=2,j<4真,(3,2),j++
19 j=3,j<4真,(3,3),j++
20 j=4,j<4假结束j循环
21
22 第*次:i=4,i<4假,结束i循环。执行后面的其他js语句
23 输出(i=4,j=4)
24 */
2.2 穷举思想
概念:我们经常想得到一组数据,有一些特定的要求,计算机没法自己帮我们输出这些数据。我们人为的需要编写一段程序,让计算机去帮我们实现程序。将所有的可能情况,一一的列举出来,然后我们人为限定判断条件,把符合条件的数据就给它输出,不满足的就跳过,继续验证下一个数据是否满足条件,直到把所有可能情况都验证一个遍。这个方法就叫做全举法,也叫穷举法。
外层:一一列举,for循环。
内层:进行判断,if语句。
案例1:在控制台输出一个数的所有约数。
约数概念:a %b ==0,那么a叫做b的倍数,b叫做a的约数或者因数。
一个数的约数,最小是1,最大是它本身。
1 // 用户输入一个正数,输出这个数所有的约数
2 // 比如用户输入12 约数1,2,3,4,6,12
3 // 的到用户输入
4 var num = parseInt(prompt("请输入数字"));
5 // 输出约数
6 // 约数范围区间1-数字本身,将这些可能性一一列举
7 for(var i = 1; i <= num; i ++) {
8 // 只输出约数
9 // 整除
10 if(num % i == 0) {
11 // 这个i才是约数,输出
12 console.log(i);
13 }
14 }
2.3 累加器和累乘器
累加器:有时我们在计算时不想知道直接的过程,只想要最终的数值,有一个满足条件的结果就自加1.
注意:
1 累加器变量,必须书写在for外面(以防变量被每次重置为0),初始值设置0.
2 当有满足条件的数值,累加器自加1
3 最终的结果也必须书写在for循环外面。
1 // 用户输入数字,输出约数的总个数
2 // 的到用户的输入
3 var num = parseInt(prompt("请输入数字"));
4 // 输出总个数
5 // 累加器必须书写在for外面初始值0
6 var sum = 0;
7 // 一一列举所有的可能性
8 for(var i = 1; i <= num ; i ++) {
9 if(num % i == 0) {
10 // i是num的约数,累加器自加1
11 sum ++;
12 }
13 }
14 //累加器最终结果在for结束输出
15 console.log(sum);
累乘器:我们不想要中间的过程,想需要得到最终的乘积
1 累乘器变量,必须书写在for外面(以防变量被每次重置为1),初始值设置1.
2 当有满足条件的数值,累加器自乘
3 最终的结果也必须书写在for循环外面。
阶乘:比如4! = 432*1
1 // 用户输入数字,输出该数阶乘
2 // 的到用户的输入
3 var num = parseInt(prompt("请输入数字"));
4 // 输出阶乘
5 // 累乘器必须书写在for循环外面,初始值是1
6 var cheng = 1;
7 // 阶乘1-num
8 for(var i = 1 ; i <= num ; i ++) {
9 // 阶乘
10 cheng *= i;
11 }
12 // 结果在最终输出
13 console.log(cheng);
案例:用户输入一个数字,判断这个数是不是质数
质数:除了1和他本身两个约数之外没有其他约数。比如3
合数:除了1和他本身两个约数之外还有其他约数。比如4
1既不是质数也不是合数。
1 // 的到用户输入
2 var num = parseInt(prompt("请输入数字"));
3 // 找约数总个数
4 // 累加器,变量必须书写在for循环外初始值0
5 var sum = 0;
6 // num约数的所有可能性一一列举for循环
7 for(var i = 1 ; i <= num; i ++) {
8 // 找约数
9 if(num % i === 0) {
10 // i是num的约数
11 // 总个数
12 sum ++;
13 }
14 }
15 // 最终sum值在for循环外面输出
16 // console.log(sum);
17 // 判断是不是质数
18 // sum如果是2那么num是质数
19 if(sum === 2) {
20 console.log(num + "是质数");
21 }else {
22 console.log(num + "不是质数");
23 }
原文地址:https://blog.51cto.com/14334627/2408635