函数
函数的使用
           声明函数
            语法:  ①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