1. 调用时机
    时机不同调用结果不同
  2. 作用域
  • 每个函数都会默认创建一个作用域
  • 全局变量和局部变量
    在顶级作用域声明的变量是全局变量,window的属性是全局变量,其他都是局部变量
  • 函数可以嵌套,作用域也可以嵌套
  • 作用域规则
    如果多个作用域有同名作用域a
    那么查找a 的声明时,就向上找最近的a
    简称就近原则
    查找a的过程和函数执行无关
    但是a的值和函数执行有关
  1. 闭包
    如果函数用到了外部的变量,那么这个变量加上这个函数就叫做闭包
  2. 形式参数
    1. function add(x, y){
    2. return x+y
    3. }
    4. // x y
    5. add(1,2)
    6. // add 1 2 x y
    非实际的参数
    变量的申明
    形参可多可少
  3. 返回值
    每个函数都有返回值,需要函数执行了才会返回,有的返回值有的返回undefined,只有函数有返回值。
  4. 调用栈
  • JS引擎在调用一个函数前,需要吧函数所在环境push到一个数组里,这个 数组叫做调用栈,当执行完了以后会将环境弹出来(pop),return到之前的环境,在执行下一步的代码
  • 每个浏览器的栈不同但是大概范围是在10000-12000之间。
  1. 函数提升
    不管函数放在哪里,它总是会在第一行,但是匿名函数除外
  2. arguments(除了箭头函数)
    保存了所有变量数据,是一个伪数组
  3. this(除了箭头函数)
    一个管道,一个空对象

更多相关文章

  1. JS 函数的执行时机
  2. JAVA的环境搭建
  3. 数组的一些基本函数
  4. JS与内存-初
  5. 微信小程序数据操作、自定义事件、微信API、路由组件、变量作用
  6. PHP 封装常用函数
  7. 4.28 函数与返回值、json的解析和加密
  8. 值与引用传递,模板字面量与标签函数,解构赋值,对象字面量的简化,bind
  9. 【ThinkPHP框架】tp的视图标签、request请求、数据库链式查询等

随机推荐

  1. 什么是Go语言?Go语言的优缺点介绍
  2. 一个c程序的执行是从哪里开始到哪里结束
  3. devc++怎么改成中文
  4. 在c语言中引用数组元素时,其数组下标的数
  5. c++中=和==的区别有哪些?
  6. 在c程序中,注释语句只能位于一条语句的后
  7. c++中不能重载的运算符有哪些
  8. c语言语句以什么结束
  9. textbox控件属性有哪些
  10. C语言中sizeof和strlen的区别是什么