对立即执行函数表达式IIFE,function(){}();报错的原因有疑惑。
请教下,是在预编译阶段就报错了,还是执行()时才报错呢。
js在"预编译"阶段, 会解释函数声明, 但却会忽略表式
1、一种是预编译阶段就报错,因为预编译时会声明成一个缺少名字的function,并且抛出一个语法错误信息,因为function声明需要一个名字。
2、执行();时才报错。 由于function() {//code}在"预编译"阶段已经被解释过, js会跳过function(){//code}, 试图去执行();, 故会报错
慕村9548890
相关分类