函数关系的应用是我们在学习软件编程开发语言的时候都会遇到的问题之一,下面我们就通过案例分析来了解一下,函数声明与函数表达式的关系。
函数声明、函数表达式、匿名函数表达式
函数表达式:function为第一个词,那么就是一个函数声明,否则就是一个函数表达式
匿名函数表达式:没有函数名,匿名函数在栈追踪这种不会显示有意义的函数名,使得调试困难
IIFE: 立即执行函数表达式((function() { ... }())、(function(){ ... })())
块级作用域
let为其声明的变量隐式地去劫持了所在的块级作用域,不会在块级作用域中进行提升【变量提升】
Demo: with关键字为块级作用域、{...}为块级作用域,用完即销毁
const常量,不可修改!
任何声明在某个作用域(函数作用域和块级作用域)的变量,都是属于这个作用域。
每个作用域都会进行提升操作。
函数声明会被提升,函数表达式不会提升,变量声明提升的过程中,函数会优先!
闭包
闭包,有权访问另外一个函数的变量标识符的函数,比较常见的一个闭包问题,就是for循环。
未来模块机制
ES6提供了全新的模块机制,基于函数的模块(如上述现代模块机制)并不是一个能被静态识别的模式(编译器无法识别),它们的API语义只有等到代码运行时才会考虑进来,而ES6模块就是一个能被静态识别的模式,就是说API在编译阶段就会检查API成员是否存在。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!