Javascript
自执行函数
+ 函数调用的一种方式
+ 不会预解析, 当代码执行到它的时候, 预解析和调用同步完成
+ 以前的: function fn(){}, fn()
+ 语法:
1. (function(){})()
2. ~function(){}()
3. !function(){}()
+ 一般的作用是单独书写 js 文件的时候使用
=> 为了保护变量不污染全局
=> 每一个 js 文件里面初始化, 使用一个自执行函数包裹
+ 一般涉及到跨文件使用的内容
=> 把需要别的文件使用的变量挂载在全局
<script src="./test.js"></script>
<script>
// console.log(num) // 04_自执行函数.html:28 Uncaught ReferenceError: num is not defined at 04_自执行函数.html:29
console.log(abc) // 200
// JS代码不写分号的话, 每一行不能以 () [] '' 开头
;(function(a){
console.log('你好世界')
console.log(a)
})(123)
~function(){
console.log('我被执行了')
}()
!function(){
console.log('我也被执行了')
}()
</script>
test.js文件:
(function(){
// code run here
var num = 100
console.log(num) // 该变量 num 只能在本文件内使用, 无法跨文件用
// 我需要跨文件使用的变量直接挂载在全局
window.abc = 200
})()