不要用全局变量做id 或变量,容易覆盖。如果偏要用,那么……声明一个函数立即执行。

一、声明一个函数立即执行的三种方式

1、在函数末尾加上.()

function (){
   var parent = document.querySelector('#self')
}.()

2、在函数末尾加上.call()

function(){
   var parent = document.querySelector('#self')
}.call()

3、声明完函数,立即调用

function xxx(){
   var parent = document.querySelector('#self')
}
xxx()

但是浏览器会报错,怎么解决?

二、解决浏览器报错

1、技巧1:整体加括号

(function(){
   var parent = document.querySelector('#self')
}.call())

2、技巧2:对匿名函数加括号

(function(){
   var parent = document.querySelector('#self')
}).call()

3、技巧3:在函数前加-或+或!或~号,告诉浏览器后面是一个值

-function(){
   var parent = document.querySelector('#self')
}.call()

注意:在一个{}里用let声明一个变量,这个变量的作用局就是在这个花括号里