js--函数

  1. 函数内部声明的所有变量会被提升到函数最开始的地方,并且函数域会覆盖全局域
var a = 123;
function f() {
  alert(a);
  var a = 1;
  alert(a);
}

等同于:

function f() {
  var a ;
  alert(a); // undefined
  a = 1;
  alert(a); // 1
  1. 即时函数

不会产生任何全局变量,无法重复运行(除非放到循环或其他函数中)

(function (name) {
  alert('Hello ' + name + '!');
})('dude');
  1. 私有函数

确保独立性,只把必要的函数暴露

function outer(param) {
  function inner(theinput) {
    return theinput * 2;
  }
  return 'the result is ' + inner(param);
}

var outer = function (param) {
  var inner = function (theinput) {
    return theinput * 2;
  };
  return 'the result is ' + inner(param);
}
  1. 闭包

在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
https://zhuanlan.zhihu.com/p/22486908

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容