函数
函数的使用
声明函数
语法: ①function ②函数名 (③形参) {
④函数体
}
function getSum (a,b) { return a+b; }
注:
function 全部小写
函数名 一般用是小驼峰命名法 如 getSum
形参 实参 尽量做到匹配
函数体 返回值
函数调用
函数名(实参)
getSum (1,2);
console.log(getSum (1,2));
设置一个参数
var fn1 = X => x + 2;
设置2个参数
var fn2 = (x,y) => X + y;
指的是有权访问另一函数作用域内变量(局部变量)函数。
两点用途如下:
① 可以在函数外部读取函数内部的变量
②可以让变量的值始终保持在内存中
闭包常见创建方式就是在一个函数内部创建另一个函数
通过另一个函数访问这个函数的局部变量,可以在函数外部读取函数内部的变量
function fn () { var times =0; //局部 var c = function () { return ++times; } return c; } console.log(fn()); var count = fn(); //保存fn()返回的函数,此时count就是一个闭包 //访问测试 console.log(count()); //输出结果1, console.log(count()); //输出结果2, console.log(count()); //输出结果3. console.log(count()); //输出结果4. console.log(count()); //输出结果5.
简单理解,一共有两个函数,包括外层函数和回调函数
forEach(), 对数组的每个元素执行一次提供的函数
var arr=[‘;8‘;,‘;7‘;,‘;5‘;,‘;3‘;]; arr.forEach(function(value,index) { console.log(value,index); });
指的是在一个函数内部存在另一个函数的生明
作用域链:在内层函数执行过程中,若需要引入某个变量,首先会在当前作用域中寻找,若未找到,则继续上一层的作用域中寻找,直到全局作用域
var i=10; function fn1 () { var i=20; function fn2 () { function fn3 () { console.log(i); } fn3(); } fn2(); } fn1();
指的是一个函数在其他函数体内调用自身的过程,这种过程称为递归函数
只有在特定情况下使用
已根据用户的输入计算指定数据的阶乘为例进行讲解
function fn () {
//1.必须有终止条件 return
//2.必须有调用自身
}
定义递归函数
function factorial (n) { //定义函数 if (n == 1) { return 1; } return n * factorial(n-1); }
阶乘 如: 3!=3*2*1=6
var n=prompt(‘求n的阶乘\n n是大于等于1的正常数,如2表示2!。‘); n=parseInt(n); if (isNaN(n)) { console.log(‘输入的n值不合法‘); } else{ console.log(‘n+的阶乘为:‘+factorial(n)); }
数组
例:
var arr=[‘red‘,‘green‘,‘blue‘]; //反转数组 console.log(arr); arr.reverse(); //倒序 console.log(arr); arr.sort(); //sort排序始终是根据元素的unicode编码进行的 console.log(arr);
例:
var arr1=[13,4,88,1,7]; console.log(arr1); arr1.sort(function (a,b) { //降序 //return b-a; //升序 return a-b; }); console.log(arr1);
var arr=[]; var obj=[];
console.log(typeof arr); console.log(arr instanceof Array); console.log(obj instanceof Array);
console.log(Array.isArray(arr));
console.log(Array.isArray(obj));
push() 数组末尾添加一个或多个元素,会修改原数组
unshift() 数组开头添加一个或多个元素,会修改原数组
pop() 删除数组的最后一个元素
shift() 删除数组的第一个元素
例:
var arr=[‘Rose‘,‘Lily‘]; console.log(arr); console.log(arr.push(‘last‘)); console.log(arr); arr.unshift(‘first‘); console.log(arr); console.log(arr.pop()); console.log(arr); arr.shift(); console.log(arr);
冒泡排序算法:在冒泡排序的过程中,按照要求从小到大排序或从大到小排序,
不断比较数组中相邻两个元素的值,较小或较大的元素前移。
实现从小到大排序
var arr = [98, 31, 5, 27, 2, 78]; // 待排序数组 for (var i = 1; i < arr.length; i++) { // 控制需要比较的轮数 for (var j = 0; j < arr.length - i; j++) { // 控制参与比较的元素 if (arr[j] > arr[j + 1]) { // 比较相邻的两个元素 var temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } console.log(arr); // 输出结果:2, 5, 27, 31, 78, 98
循环语句
for(初始化变量;条件表达式;操作表达式){
循环体
}
如:
for(var i=1;i<=100;i++){ console.log(‘;i=‘;+i); }
初始化变量
while(条件表达式){
循环体
操作表达式
}
var i=1; while(i<=100){ console.log(‘;i=‘;+i); i++; }
初始化变量
do{
循环体
操作表达式
}while(条件表达式)
var i=1; do{ console.log(‘;i=‘;+i); i++; }while(i<=100)
原文:https://www.cnblogs.com/xbdhmz/p/14773998.html