zoukankan      html  css  js  c++  java
  • 三大控制结构 js函数定义

    分支结构 条件语句

    单向分支

    if (){
    	
    }
    	当只有一行代码是可省略花括号,但是代码可读性会变差。
    

    双向分支

    if () {
    
    } else {
    
    }
    

    嵌套分支

    if (){
    	if (){
    	}
    } else {
    }
    

    多项分支 if else if

    if (){
    	
    } else if (){
    
    } else if (){
    
    } else {
    	
    }
    

    多项分支 switch case

    switch (表达式) {
    	case 值: 表达式; break; 		
    	case 值: 表达式; break; 	
    	case 值: 表达式; break; 	
    	case 值: 表达式; break; 	
    }
    

    循环结构

    while 语句

    while (表达式) {
    	循环体	
    }
    

    do while 语句

    do {
    	循环体
    } while (表达式);
    

    for 语句

    for (定义循环变量; 条件判断; 循环变量变化) {
    	循环体
    }
    

    跳转语句

    • continue 结束当前循环
    • break 结束整个循环
    • return 结束函数

    其他语句

    • debugger;
    • with
    • use strict 严格模式

    函数

    函数的优势

    • 提高代码重用性
    • 代码可读性
    • 程序的可维护性
    • 提高软件的开发效率
    • 控制程序设计的复杂性

    函数的组成

    • 函数名
    • 函数体
    • 参数 (形参 和 实参)
    • 返回值 (结束函数, 作为函数调用表达式整体的值)

    函数的声明方式

    • 关键字方式

        function 函数名([参数列表]) {
        	函数体
        }
      
    • 表达式方式(匿名函数方式)

        var 函数名 = function([参数列表]) {
        	函数体
        }
        番薯赋值给变量,只加载变量 而函数function没有被预解析
      
    • 构造函数方式

        var 函数名 = new Function("参数", "函书体)
      

    函的参数问题

    • 形参和实参的数量

      形参数量<实参数量 多余的 实参被忽略

      形参数量>实参数量 没有赋值的形参会自动赋值undefined

    • 参数的默认值

      • ECMA6语法(不兼容IE) function 函数名(参数1, 参数2=默认值)
      • 有默认值的参数要写在后面
      • 有默认值的参数称之为可选参数
      • 兼容处理参数默认值问题, 在函数体判断 参数值是否是undefined
    • 可变参数数量的函数

      • arguments

    函数的作用域

    • 全局变量 在函数外面定义的变量

    • 局部变量 在函数里面定义的变量

    • 在函数内,不使用var声明的变量是全局变量(不推荐使用,严格模式不允许)

         var a = 1;
         function fn1(){
         	alert(a);	//1		
         	a = 2;		//全局变量
         }
         fn1();
         alert(a);		//2				
        
        
        
         var a = 1;
         function fn1(a){  //新声明了一个变量a,
         	alert(a);		//undefined				
         	a = 2;        //给新声明的变量a赋值
         }
         fn1();
         alert(a);		//1		
      

    递归函数

    		//实现 阶乘 m的阶乘
    function cheng(m){
    	if(m<=1){
    		return 1;
    	}
    	return m*(cheng(m-1));
    }
    console.log(cheng(3));
    /*
     	cheng(3)  return 3*cheng(2)
     		cheng(2) return 2* cheng(1)
     			cheng(1) return 1
     		cheng(2)  return 2*1
     	cheng(3) return 3*2
     */
  • 相关阅读:
    LeetCode:35. 搜索插入位置
    LeetCode:34. 在排序数组中查找元素的第一个和最后一个位置
    LeetCode:33. 搜索旋转排序数组
    LeetCode:31. 下一个排列
    LeetCode:23. 合并K个排序链表
    LeetCode:21. 合并两个有序链表
    JDE910笔记1--基础介绍及配置[转]
    JDE910笔记2--OMW项目建立及简单使用[转]
    活动目录—远程安装额外域控制器[转]
    java入门第五步之数据库项目实战【转】
  • 原文地址:https://www.cnblogs.com/pangwl/p/7400770.html
Copyright © 2011-2022 走看看