小编Ham*_*med的帖子

在IIFE中两次声明变量

我在互联网上通过了这个有趣的测验。

console.log((function(x, f = (() => x)){
  var x;
  var y = x;
  x = 2;
  return [x, y, f()]
})(1))
Run Code Online (Sandbox Code Playgroud)

选择是:

  1. [2,1,1]

  2. [2,未定义,1]

  3. [2,1,2]

  4. [2,未定义,2]

我选择了解决方案2 TBH,基于x已被重新定义,y被声明和定义为没有值的情况,并且f具有不同的作用域,因此获得的全局x内存点比函数x内存点大。

但是,我在jsbin.com中尝试过

我发现这是解决方案1,虽然不确定为什么会弄乱函数主体并var x从函数主体中删除,但发现响应更改为#3,这在x值更改时是有意义的,因此表明x和f为2,y为1,这是全局声明的。

但我仍然不明白为什么它显示1而不是未定义。

javascript iife

20
推荐指数
1
解决办法
455
查看次数

PHP使用字符串指向一个函数

在搜索其他内容时,我发现了这段代码

$x = "foo";
    function foo(){ echo "wtf"; }
$x(); # "wtf"   
Run Code Online (Sandbox Code Playgroud)

当我搜索谷歌这个时,我得到的只有C结果而不是PHP,而我知道在PHP引擎盖下是C,我真的想要一些解释.

这叫什么?

以及它如何被PHP zend解释?它是某种可赎回的吗?

它仍然可以在PHP 7+中使用吗?

php string function

3
推荐指数
1
解决办法
73
查看次数

标签 统计

function ×1

iife ×1

javascript ×1

php ×1

string ×1