js⾥⾯的function与Function function 是 js 的标识符
Function 是 js ⾥⾯的⼀个 构造函数
1、new function 与 new Function 的区别
new 运算符在 js ⾥⾯是 创建⼀个⾃定义的对象的实例 或者是 ⼀个具有构造函数的本地对象语法:new constructor [ ( [ arguments ] ) ]
new function() {…} 初始化⼀个可操作对象,相当于 new function 匿名函数() {…}
new Function(‘参数’, ‘函数体’) 是实例化⼀个函数,相当于 function 函数名() {…}
2、⽴即执⾏函数 ( function(){…} () ) 和 ( function(){…} )()
// 1、
// 定义⼀个命名函数 a 并调⽤,正常运⾏
function a(){}a()
// 2、
// 2 假设使⽤匿名函数的⽅式呢?
function (){}()
//这种⽅式会报错:Uncaught SyntaxError: Unexpected token (
// 3、
//按到如上思路测试,寻 2 报错的原因
function () {}//前端全栈交流学习圈:866109386
// 3 会报错,与 2 报错相同:Uncaught SyntaxError: Unexpected token (
// 4、
();
/
/ 4 会报错:Uncaught SyntaxError: Unexpected token )
// 5、
(1);
// 5 不会报错正常运⾏
// 6、
(function(){});
// 6 不会报错正常运⾏
可以看出,上述现象报错的原因都是:语法错误。究其原因发现是因为 ()运算符的优先级函数调⽤,⽽ () 运算符的括号内必须有表达式,否则就会有语法错误。
js arguments因此可以⽤ (function(){})() 的形式定义⼀个⾃调⽤的匿名函数
//1、
(1+2)(5+6);
//在进⾏如上表达式运算的时候,会报错:Uncaught TypeError: 3 is not a function,也就是说如果第⼀个表达式是⼀个 function 的话,就会正常运⾏。
//2、所以在保证整个运算为表达式运算的情况下,第⼀个⼦表达式为 function,则得出如下写法
(function(){}());
// 2 正常运⾏不会报错
// 3、因此可以得出如下写法也都是正确的
!function(){};
+function(){};
-function(){};
~function(){};
......

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。