zoukankan      html  css  js  c++  java
  • 初:函数

    函数声明:一个函数的定义有几个关键字组成/1.function关键字/2.函数名称/3.()参数/4.{} 执行语句块组成。

    函数声明跟函数表达式的区别:
    /函数声明是以function关键字开始的 /函数声明一定要有名字 / 函数表达式有名字,也可以没有名字(匿名函数)/
    栗子:function fn(){} //函数声明
    var fn = function() {} //函数表达式

    函数声明里面的函数不会改变全局变量的值/这个变量是一个固定的值
    栗子:var a = 1;
    function fn(a) {
    a = a * 10;
    return a;
    } console.log(fn(a)) //a = 1; 不会改变全局中的变量a

    function fn() {
    var b = 1;
    b = b * 10;
    return b;
    } console.log(fn()) // b = 10; 局部中的变量b的值改变

    如果传递的参数是一个数组(Array)或者一个自定义对象,修改数组对象中的属性,对全局是起作用,可见。

    栗子:function fn(arrList) {
    arrList.make = 'just';
    }
    var mycar = {make: "Honda", model: "Accord", year: 199};
    var x, y;
    console.log(x = mycar.make); //Honda
    fn(mycar);
    console.log(y = mycar.make); //jUST

    多层嵌套函数,最里面的函数可以访问外面的函数,外面的不能访问里面的
    栗子: function A(x) {
    function B(y) {
    function C(z) {
    console.log(x+y+z)
    }
    C(3);
    }
    B(2);
    }
    A(1); // 6,C可以访问B,B属于A,C能访问B / A访问不了B跟C

    命名冲突:如果变量命名发生了冲突,则要看他们的作用域,里面的最用域高于外面的作用域。
    栗子: function A() {
    var x = 10;
    function B(x) {
    return x;
    }
    return B;
    }
    fn = A()(20) //20,因为会采用B作用域中的20赋值

    闭包:函数中包含函数的时候,当里面的函数用到了外部函数的变量或者方法,而里面的函数或者引用到的变量被返回 / 执行 / 被外部调用时就产生了闭包。 闭包里面的作用域不会被回收销毁。

  • 相关阅读:
    Scrapy爬虫快速入门
    python垃圾回收机制
    django项目的uwsgi方式启停脚本
    hdu 5504 GT and sequence
    python 在 for i in range() 块中改变 i 的值的效果
    linux 在终端中打开图形化文件管理器
    apache 支持 php
    Mysql 学习记录
    git 导入代码到已有仓库
    python import 自己的包
  • 原文地址:https://www.cnblogs.com/htzan/p/5744552.html
Copyright © 2011-2022 走看看