函数对任何语言来说都是一个核心的概念。 通过函数可以封装任意多条语句, 而且可以在任何地方、任何时候调用执行,即函数是定义一次但却可以调用或执行任意多次的一段 JS 代码。
JS中的函数也是对象,所以JS函数可以像其它对象那样操作和传递,我们也常叫JS中的函数 为函数对象。
ECMAScript 中的函数使用 function 关键字来声明,后跟一组参数以及函数体。
n 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间。可以使用侦听器(或处理程序)来预订事件,以便事件发生时执行相应的代码。
焦点事件,当元素获得或失去焦点时触发;
鼠标事件,当用户通过鼠标在页面上执行操作时触发;
键盘事件,当用户通过键盘在页面上执行操作时触发
......
n onclick/ondblclick/onmouseover/onmouseout/onkeydown/onkeyup......
JS的解析过程分为两个阶段:预编译期(预处理)与执行期。
预编译期JS会对本代码块中的所有声明的变量和函数进行处理(类似与C语言的编译),但需要注意的是此时处理函数的只是声明式函数,而且变量也只是进行了声明但未进行初始化以及赋值。执行期就是在编译后的基础上开始从上到下执行脚本,遇到错误时中断。
ECMAScript 函数不介意传递进来多少参数,也不会因为参数不统一而错误。实际上,函数体内可以通过 arguments 对象来接收传递进来的参数(实参)
多数函数都有一条return语句,return语句导致函数停止执行,并返回它的表达式的值给调用 者。如果return语句没有相关的表达式,则返回undefined。
任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作 用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和 局部作用域两种。
递归函数是在一个函数通过名字调用自身的情况下构成的