JavaScript函数实用tips

2021-03-04
212
304

函数是 JavaScript 中最有用也最常用的工具。ECMAScript 6 新增了更强大的语法特性,从而可以让开发者更有效的使用函数。

  • 函数表达式与函数声明是不一样的。函数声明要求写出函数名称,而函数表达式不需要。没有名称的函数表达式被称为匿名函数。
  • ES6 新增了类似于函数表达式的肩头函数语法,但二者也有一些重要区别。
  • JavaScript 中函数定义与调(读:tiao [第二声]) 用时的参数相当灵活。ES6 新增的扩展操作符以及 arguments 对象可以实现函数定义和调用的完全动态化。
  • 函数内部也暴露了很多对象和引用,涵盖了函数被谁调用,使用什么调用,以及调用时传入了什么参数等。
  • JavaScript 引擎可以优化符合尾调用条件的函数,以节省栈内存。
  • 闭包的作用域链中包含自己的一个变量对象,然后是包含函数的变量对象,直到全局上下文的变量对象。
  • 通常,函数作用域及其中的所有变量在函数执行完毕后都会被销毁。
  • 闭包在从函数中返回后,其作用域会一直保存在内存中,直到闭包被销毁。
  • 函数可以在定义之后立即被调用,执行其中的代码而不留下该函数的引用。
  • 立即执行函数表达式(IIFE)如果在调用之后没有将返回值赋值给一个变量,那么其包含的所有变量都会被销毁。
  • JavaScript 中虽然没有私有对象属性的概念,但是可以通过闭包实现公共方法访问该闭包作用域中的变量,从而达到变量/属性私有化的目的。
  • 可以访问私有变量的公共方法称为“特权方法”
  • 特权方法可以使用构造函数或原型模式在自定义类型中实现,也可以使用模块模式或模块增强模式在单例对象上实现。
212

文章版权所有:PORK's BLOG,采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

欢迎分享,转载务必保留出处及原文链接