Perfection Kills

JavaScript自执行函数解析
本文通过多个示例详细解析了JavaScript中的自执行函数及其运行原理,涵盖了类型检测、作用域链、函数提升等核心概念。
 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>无标题文档</title>
 6 <script>
 7     window.onload=function(){
 8         /*
 9         1.
10         (function(){
11             alert(typeof(arguments));    
12         })();
13         自执行函数,结果为object
14         */    
15         /*2.
16         var f = function g(){ return 23; };
17           alert(typeof g());*/
18         //g只能在内部调用,结果为 g is not undefined
19         
20         /*3.(function(x){
21             delete x;
22             return x;
23          })(1);*/
24          //delete只能删除某个函数下的属性,不能删除变量以及参数,这里的x为形参,结果为1
25          
26          
27          /*4.
28          var y = 1, x = y = typeof x;
29            alert(x);
30          因为typeof返回的是字符串,并且表达式从右向左计算,因此结果为"undefined"*/
31          
32          /*5.
33          (function f(f){
34          return typeof f();
35            })(function(){ return 1; });
36          自执行函数,把1传给f,结果number*/
37          
38          /*
39          6.
40          var foo = {
41             bar: function() { return this.baz; },//this指向foo.bar,但其实是window
42             baz: 1
43           };
44          (function(){
45                 return typeof arguments[0]();
46           })(foo.bar);//结果为undefined*/
47           
48           /*7.
49           var foo = {
50                 bar: function(){ return this.baz; },
51                 baz: 1
52               }
53               typeof (f = foo.bar)();
54          ;*/
55          
56          /*8.
57          var f = (function f(){ return "1"; }, function g(){ return 2; })();
58            alert(typeof f);
59          //分组选择符,返回最后面的那个值*/
60          
61          /*9.
62          var x = 1;
63           if (function f(){}) {
64             x += typeof f;//1+undefined字符串连接
65           }
66           x;*/
67           
68           /*10.
69           var x = [typeof x, typeof y][1];
70             typeof typeof x;//返回字符串string*/
71           
72           /*11.
73           (function(foo){
74             return typeof foo.bar;
75           })({ foo: { bar: 1 } });//只有foo一个属性,返回undefined*/
76           
77           /*12.
78           (function f(){//函数声明预解析,结果为2,覆盖前面的1和2
79             function f(){ return 1; }
80             return f();
81             function f(){ return 2; }
82           })();*/
83           
84           /*13.
85           function f(){ return f; }
86             new f() instanceof f;//f()变成了f对象,结果为false*/
87           
88           /*14.
89            with (function(x, undefined){}) length;
90            //计算函数的长度,即参数的个数,结果为2*/
91          }
92 </script>
93 </head>
94 <body>
95 </body>
96 </html>

 网址:http://perfectionkills.com/

转载于:https://www.cnblogs.com/paxster/p/3478631.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值