• 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`声明的变量就是全局变量( 禁用 )

  • 相关阅读:
    关于IE缓存的解决方案(HTML,JSP,ASP,PHP,C#)(转)
    ASP.NET 2.0 中的客户端脚本
    Post和Get的区别(兼谈页面间传值的方式)(转)
    委托的小例子
    JS的正则表达式
    HTTP消息头
    asp.net一个onclick的全过程(简单写一下)
    location.reload() 和 location.replace()的区别和应用
    使用 .NET Framework 2.0 在您的应用程序中支持证书(转)
    页面动态注册脚本(小技巧)
  • 原文地址:https://www.cnblogs.com/wangxue13/p/13537948.html
Copyright © 2020-2023  润新知