zoukankan      html  css  js  c++  java
  • JavaScript函数

    知识点一:函数

    1、概念:具有相同的特定功能的代码封装在一起,就是函数

    2、定义:     

    ①    函数表达式

    var $ = function () {

        console.log("函数表达式");

      }

    ②    数的声明    

     function fn1() {

        console.log("函数的声明");

      }

    声明后的函数并不会执行

    4、 函数的调用

    ①    方法()

    5、函数的参数

    在函数小括号中,具有向函数内部或者外部传递信息的作用

    形式参数:在函数的定义中===形参

    实际参数:在函数的调用中===实参

    6、函数的返回值

    1、定义:函数的调用就是函数的返回值

    2、如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined

    3、  如果函数使用 return语句,那么跟在return后面的值,就成了函数的返回值

    4、  如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined

    5、 函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值。

    知识点二:函数其他

    1、函数的命名规范

    (1)     规则:    

    1)        由字母、数字、下划线、$符号组成,不能以数字开头

    2)         不能是关键字和保留字,例如:for,while, this, name

    3)          区分大小写

    (2)     规范:

    1)         函数名必须有意义

    2)          遵守驼峰命名法

    3)          建议不要用$作为函数名

    2、函数的覆盖问题

    (1)     同名函数后边的函数会覆盖前边的函数

    3、匿名函数

    (1)     定义:没有名字的函数

    (2)     调用:自调用

    (3)     例如:

     (function () {

        console.log("匿名函数");

      })()

    4、函数也是一种数据类型

    (1)     是一种引用数据类型

    (2)     通过typeof判断返回function

    5、函数可以作为参数传入

    function fn5(x) {

        console.log(x);

        x();

      }

      fn5(function () { console.log("可以作为参数传入") })

    6、 函数可以作为参数反出

    function fn6(x) {

        return x;

      }

      fn6(function () {

        console.log("可以作为参数反出");

      })()

    知识点三:预解析

    1、概念:

    ①    js通过浏览器内核中JavaScript引擎解析,在解析之前,会进行一项工作,预解析。会对以定义function,var进行提升

    2、函数提升

    3、变量的提升

    只会进行声明的提升,不会进行赋值提升

    4、同名函数的覆盖的提升

    同名的函数,后面的会覆盖前面的

    5、变量和函数同名

    1、顺序的情况下:变量会覆盖函数名

    2、提升的情况下:函数会提升,变量会忽略

    6、不可能会提升到作用域外

    在window中定义的变量:全局变量

    在函数中定义的变量:局部变量(只能在当前作作用域中使用)

    7、函数表达式并不会被提升

    知识点四:作用域链

    1、定义

    ①    函数内指向函数外的链式结构。就称作作用域链

    2、全局作用域=全局变量

    3、局部作用域=局部变量

    只有函数才能产生局部作用域

    4、局部变量

    ①    只在当前的作用域下是有效的

    ②    只有函数才能产生作用域

    5、用域链查找规则

    ①    先从当前的作用中查找,如果没有,从父作用中查找

    ②    如果父作用域没有,还继续往上查找,直接到全局作用域

    ③    如果全局没有,就报错

    6、注意:

    ①    声明变量使用`var`, 如果不使用`var`声明的变量就是全局变量( 禁用 )

  • 相关阅读:
    开发导致的内存泄露问题,运维小伙伴儿这样排查不背锅
    JVM垃圾回收器、内存分配与回收策略
    笔试编程(二) | 7种常见的排序算法解析(附实现代码)
    HBase高级特性、rowkey设计以及热点问题处理
    Geotools创建Feature的两种方式
    geotools实现追加数据到数据库
    Java连接mysql数据库经典代码
    leaflet加载高德地图和Geoserver的WMS服务
    geotools学习之连接数据库并获取数据
    LeaFlet中切片图层使用自定义坐标系
  • 原文地址:https://www.cnblogs.com/wangxue13/p/13537948.html
Copyright © 2011-2022 走看看