这个函数执行 为什么取不到外部的值

<!DOCTYPE html><html lang="en">

 

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title></title></head>

 

<body>

 

</body>

 

<script>var name = '张三';(function () {if (typeof name == 'undefined') {var name = '李四';console.log(name);} else {console.log('hello' + name);}})()</script></html>  主要的疑虑就是为什么取不到外部的值,以及这个函数前后两个括号各代表的是什么意思?这样会形成闭包吗? 劳烦哪位大佬给我解答,谢谢了~~


烙印99
浏览 580回答 1
1回答

慕工程0101907

简单点,先去掉判断,这样写:<script>var&nbsp;name&nbsp;=&nbsp;'张三';function&nbsp;test(){var&nbsp;name1&nbsp;=&nbsp;name; console.log(name1); } test();</script>上面看懂了,再加上判断即可。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript