理解令人困惑的类似javascript代码片段

时间:2016-06-19 23:19:20

标签: javascript

这里有两个不同的代码片段。我需要知道每个输出是什么,以及它产生输出的原因。

var output = (function(x){
        delete x;
        return x;
      })(0);
    
      console.log(output);

var x = 1;
var output = (function(){
    delete x;
    return x;
  })();

  console.log(output);

2 个答案:

答案 0 :(得分:0)

第一个片段是一个使用参数的函数(调用时给予函数的值),并且赋值为0,而第二个片段使用存储值的全局变量1。

答案 1 :(得分:0)

1)输出0.删除操作符用于从对象中删除属性。这里x不是对象而是局部变量。删除操作符不会影响局部变量。

2)输出1.这里x不是一个对象,而是它是类型数的全局变量。