扫码关注官方订阅号
输出结果为什么是undefined。主要考察的是哪方面的知识?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
题主需要了解变量声明提升的相关概念。
变量声明提升
相当于
var foo = 123; (function(){ var foo; console.log(foo); foo = foo || 'name' }())
泻药,楼上已回答了的
这是声明提升,hositing
差不多就是在一个作用域内,你在中间var声明了一个变量什么的,实际上会把var xx提升到最前面去,比如在你的代码了,实际上就是
var foo=123; (function(){ var foo;//var声明被提前了 console.log(foo);//所以这里不会访问到外部的123,而是因为访问内部的foo,但还没到赋值阶段,所以undefined foo = foo || 'name'; })()
百度搜:js 变量提升
Google搜:js variable hoisting
大概就是说var所定义的变量会提升到作用域最开始。
// your code var a = 1; var fn = function () {};
JS引擎在解析运行时会变成:
var a, fn; // your code a = 1; fn = function () {};
变量提升,示例
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
题主需要了解
变量声明提升的相关概念。相当于
泻药,楼上已回答了的
这是声明提升,hositing
差不多就是在一个作用域内,你在中间var声明了一个变量什么的,实际上会把var xx提升到最前面去,比如在你的代码了,实际上就是
百度搜:js 变量提升
Google搜:js variable hoisting
大概就是说var所定义的变量会提升到作用域最开始。
JS引擎在解析运行时会变成:
变量提升,示例