javascript IIFE in depth
2024-10-09 17:50:21
javascript IIFE in depth
function type
- 函数表达式
x = function (){
console.log(x);
}
ƒ (){
console.log(x);
}
x;
ƒ (){
console.log(x);
}
x();
ƒ (){
console.log(x);
}
window.x;
ƒ (){
console.log(x);
}
x = function x(){
console.log(x);
}
ƒ x(){
console.log(x);
}
x();
ƒ x(){
console.log(x);
}
window.x;
ƒ x(){
console.log(x);
}
- 函数声明
function x(){
console.log(x);
}
x();
ƒ x(){
console.log(x);
}
window.x
ƒ x(){
console.log(x);
}
考察知识点
- closure
- IIFE
- hoisting
- scope
- function declaration / function expression
- named function / anonymous function
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions
closure
https://javascript.info/closure
js var hoisting
function
var
demo
https://muyiy.cn/question/js/33.html
// 下面的代码打印什么内容,为什么?
var b = 10;
(function b(){
b = 20;
console.log(b);
})();
var b = 10;
(function b(){
b = 20;
console.log(b);
console.log(window.b);
})();
ƒ b(){
b = 20;
console.log(b);
console.log(window.b);
}
// 10
函数表达式的函数名是常量,无法二次赋值(在正常模式下静默失效,在严格模式下报错)
非匿名自执行函数,函数名只读
'use strict';
var b = 10;
(function b(){
'use strict';
b = 20;
console.log(b);
console.log(window.b);
})();
// Uncaught TypeError: Assignment to constant variable.
at b (<anonymous>:4:7)
at <anonymous>:7:3
https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/48#issuecomment-615547271
scope & hoisting
https://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html
https://repl.it/@xgqfrms/Function-hoisting-greater-var-hoisting
https://stackoverflow.com/questions/7506844/javascript-function-scoping-and-hoisting
https://www.sitepoint.com/5-typical-javascript-interview-exercises/
xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
最新文章
- 关于case语句中声明变量并初始化的注意事项
- C#如何自定义DataGridViewColumn来显示TreeView
- How to control PrincipalObjectAccess table growth in Microsoft Dynamics CRM 2011
- javascript的navigator对象
- JavaScript 堆
- MVC Sesion丢失问题
- 杭电OJ分类
- 刷新UITableView
- java课程设计-猜数游戏(201521123029 郑佳明)
- centos7 升级 git(2.14.3) 版本
- 爱因斯坦求和约定 (Einstein summation convention)
- 使用stylus
- DragonBones的下载和安装
- dojo DataGrid实现表格数据编辑的解决方案
- CSS之外边距折叠
- 移动App 的 ios11 和 iPhoneX 适配
- 李洪强漫谈iOS开发[C语言-053]-小结
- PyQt5资料
- Java知识点汇总
- LVM逻辑磁盘管理
热门文章
- epoll在fork子进程中的问题
- LOJ10199轻拍牛头
- 十四:SpringBoot-配置MongoDB数据库,实现增删改查逻辑
- Postman 的 Post 请求方式的四种类型的数据
- 2019 Multi-University Training Contest 1 D.Vacation(思维)
- Testing Beta Round (Unrated)
- 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛(8/11)
- Dire Wolf——HDU5115
- Codeforces Round #652 (Div. 2) C. RationalLee 贪心
- Codeforces Round #643 (Div. 2) B. Young Explorers (思维,贪心)