首页 > 代码库 > JS中的循环结构、循环嵌套以及函数介绍
JS中的循环结构、循环嵌套以及函数介绍
【循环结构的步骤】
*①声明循环变量
*②判断循环条件
*③执行循环体(while的{}中的所有代码)操作
*④更新循环变量
*
* 然后,循环执行②③④
*
*
* 【JS中循环条件支持的数据类型】
* ①boolean:true 真 false 假
* ②string: 非空字符串为真 空字符串为假
* ③null/NaN/undefined: 全为假
* ④object:全为真
* ⑤number:0为假,一切非0均为真
while循环特点:先判断,再执行;
do-while循环特点:先执行,再判断;即使初始条件不成立,do-while循环也至少执行一次;
[for循环]
* 1、for循环有三个表达式,分别为:①定义循环变量②判断循环条件③更新循环变量
* 三个表达式之间,用;分隔
* for循环三个表达式均可省略,两个;缺一不可
*
* 2、for循环特点:先判断,再执行;
* 3、for循环三个表达式,均可以有多部分组成,之间用逗号分隔,但是第二部分判断条件用&&链接,最终结果需要为真/假
【循环控制语句】
*
* 1、break:终止本层循环,继续执行循环后面的语句;
* 当循环有多层时,break只会跳过一层循环;
* 2、continue:跳过本次循环,继续执行下一次循环;
* 对于for循环,continue执行后,继续执行循环变量更新语句n++
* 对于while,do-while,continue执行后,继续执行循环条件判断;所以使用这两个循环时,必须注意:continue一定要在n++之后使用;
[循环嵌套特点]
* 外层循环转一次,内层循环转一圈;
*
* [做图形题思路]
*
* 1、确定图形一共几行,即为外层的循环的次数;
* 2、确定每行有几种元素,代表有几个内层循环;
* 3、确定每种元素的个数,即为每个内层循环的次数;
* tips:通常,找出每种元素个数,与行号的关系式,即为当前内层循环的最大值;
浏览器控制台打印输出
*
* console.log("请输入0-6之间的数字\n111");
*
* \n 表示换行
*
* \t 制表符,使光标退到下一个制表位。(每个制表位,4个字符;前一制表位若不满4个字符,则后面内容在下一格显示;前一制表位若满4个字符,则后面内容空一个显示;)
*/
//console.log("请输入0-6之间的数字\n1111\t2\t333");
【函数的声明及调用】
* 1、函数声明的格式:
* >>>function 函数名(参数1,参数2,……){
* //函数体
* return 结果;
* }
* >>>函数调用的格式:
* 直接调用:函数名(参数1的值,参数2的值,……);
* 事件调用:事件名=函数名();
* 2、函数声明的几点强调:
* ①函数名的声明,必须符合小驼峰法则(首字母小写,之后每个单词首字母大写);
* ②参数列表:可以有参数,可以无参数,分别称为有参函数,无参函数;
* ③声明函数时的参数列表,称为“形参列表”(变量的名);
* 调用函数时的参数列表,称为“实参列表”(变量的值);
* 函数中实际有效的参数取决于实参的赋值,未被赋值的形参,将为undefined;
* ④函数如果需要返回值,可用return返回结果;
* 调用函数时,使用var 变量名=函数名();的方式,接受返回结果;
* 如果函数没有返回值,则接受的结果为undefined。
* ⑤函数中变量的作用域:
* 在函数中,使用var声明的变量,默认为函数局部变量,只在函数内容能用;
* 不使用var声明的变量,默认为全局变量(函数中的全局变量,必须在函数调用后,才能使用);
* 函数的形参列表,为函数局部列表,只在函数内部能用;
* ⑥函数声明与函数调用没有先后之分。即,调用语句可写在声明语句之前。
【JS中代码执行顺序】:
* JS中代码运行,会先进行检查、装载,即声明变量、函数等操作;
* 然后再进入执行阶段(变量的赋值等属于执行阶段)
*
* 所以,函数的声明属于检查装载阶段,函数的调用属于执行阶段。所以,函数调用语句写在函数声明语句之前,并没有任何关系。
*
* 所以,上述代码,执行流入
* --------检查装载阶段---------
* var sum;//声明变量
* function funcN(){}//声明函数
*
* --------执行阶段-------
* console.log(num);
* num=10;
* funcN();//执行函数的{}中代码
【匿名函数的声明及调用】
* 1、声明一个匿名函数,直接赋给某个事件;
* window.onload=function(){}
* 2、使用函数表达式声明匿名函数;
* 声明函数表达式var func=function(){}
* 调用函数表达式: func();
* >>>使用匿名函数表达式,则调用语句,必须在声明语句之后,否则报错(对比常规函数声明与调用区别?)
* 3、使用自执行函数,声明并直接调用匿名函数:
* ① !function(参数1){}(参数1的值);//使用任意运算符开头,一般使用!
* ② (function(){}())//使用()将匿名函数及之后的括号包裹
* ③ (function(){})()//使用()只包裹匿名函数表达式
*
* 三种写法特点:
* ①结构清晰,开头加!,结尾加(),不容易乱,推荐使用;
* ②可以表明匿名函数与之后的()为一个整体,推荐使用;
* ③无法表明函数与之后()为一个整体,不推荐使用;
[arguments对象]
*
* 1、作用:用于保存调用函数时,所赋值的实参列表。
* >>>当我们调用函数,并使用实参赋值时,实际上参数已经保存到arguments数组中,即使没有形参,也可以使用arguments[n]的形式调用参数;
* 2、arguments数组的个数,取决于实参列表。与形参无关(顺序从0开始);
* 但,当第N个位置的形参、实参、arguments都存在时,形参与arguments是同步的。(即在函数中修改其中一个的值,另一个会同步变化)
*
* 3、arguments.callee是arguments的重要属性,用于返回arguments所在函数的引用;
*
* arguments.callee()可以调用自身函数执行;
*
* 在函数内部调用函数自身的写法,被称为递归,所以arguments.callee()是递归调用时常用的方式;
*
*
* this:
* 指向函数调用语句所在作用域,即:谁调用函数,this指向谁;
JS中的循环结构、循环嵌套以及函数介绍