zoukankan      html  css  js  c++  java
  • 🍖JS函数

    一.函数定义

    • 用来封装你的重复性代码
    • 在 Python 中定义函数使用 def 很关键字
    • 在 js 中使用 function 定义函数
    // 语法 
    function [函数名](形参1,形参2,形参3...){
        [函数体代码];
    }
    
    • 无参函数
    // 定义无参函数
    function func1(){
        alert("Hello world");
    }
    
    // 调用
    func1();  // "Hello world"
    
    • 有参函数
    // 定义有参函数
    function func2(name,age){
        alert(name+"年芳"+age);
    }
    
    // 调用
    func2("小女子",28);  // "小女子年芳28"
    func2(1,2,3,4)  // "1年芳2" (参数过多不要紧,只会取出相应的数据)
    func2(1)  // "1年芳undefined" (参数少了也不要紧,会以 undefined 填充)
    

    二.函数参数

    • 参数一般五个以下
    • 函数内引用的参数大于传入的参数会以 "undefined" 替代
    • 函数内引用的参数小于传入的参数, 那么只会取出相应的参数
    function cook(isBad,a,b,c){ // isbad形式参数
    	if (isBad){
            alert('做饭');
    		
    	}else{
            alert('点一个外卖');
    	}
    }
    var bad = false;  //刀坏了
    cook(bad);  // 点一个外卖
    
    • arguments 参数

    能够获取到函数接受到的所有的参数

    function alls(a,b,c,d){
        console.log(arguments);
    }
    alls(1,2,3)  // [1,2,3]
    

    三.函数返回值与函数表达式

    • 可以声明变量来接收函数返回值
    //  加法
    function addition(a,b){
    	return a+b;
    }
    // 减法
    function subtraction(a,b){
    	return a-b;
    }
    
    // 乘法
    function multiplication(a,b){
    	return a*b;
    }
    
    // 除法
    function division(a,b){
    	return a/b;
    }
    
    // 调用
    var r = addition(4,6);         // 10
    var r1 = subtraction(4,6);     // -2
    var r2 = multiplication(4,6);  // 24
    var r3 = division(4,6);        // 0.666666666666
    
    • 函数表达式
    var division = function(a,b){
    	return a/b;
    }
    // 调用
    division(10,2)  // 5
    

    四.全局变量与局部变量

    • 函数外部的属于全局,函数内部的属于局部,只能在函数里面调用, 函数运行完毕, 局部变量就会被删除
    • 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它
    var a = 1;
    console.log(a);  // 1
    function add(){
    	var b = 2;
    	console.log(b);  // 2
    }
    add();
    
    //无法调用,b只是局部
    console.log(b);  // 报错
    

    五.匿名函数

    • 没有名字的函数
    • 函数可以被赋值, 但对于一个匿名函数来说赋予名字没有意义
    • 匿名函数一般与 map( ) 之类的函数组合使用
    function(){
        console.log("xxx");
    }
    

    六.作用域

    • 首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。另外函数的作用域关系是在定义阶段就固定死的,与调用位置无关

    七.变量提升

    • 所有的声明都会提升到作用域的最顶上去
    • 同一个变量只会声明一次, 其他的被忽略掉
    • 函数的声明优先级高于变量声明的优先级, 并且函数声明和函数定义的部分一起被提升
  • 相关阅读:
    CodeForces 452C Magic Trick (排列组合)
    zoj 3209 Treasure Map(精确覆盖)
    POJ 1459 Power Network(网络流 最大流 多起点,多汇点)
    POJ 1273 Drainage Ditches(网络流 最大流)
    HDU Tickets(简单的dp递推)
    ZOJ 3080 ChiBi(spfa)
    URAL 1036(dp+高精度)
    最佳的 清楚浮动 clearfix
    响应式开发
    javascript 性能优化
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14521082.html
Copyright © 2011-2022 走看看