js 声明提升
- 声明提前
变量在声明之前已经可以使用了 - js中的所有的变量声明都提升到函数体内的顶部 ,如下图
实际运行的情况是如下
function f1() {
-- var scope ;console.log(scope) ;
var scope = 'local' ;
console.log(scope)
}
f1();
备注:
声明提前了,而赋值语句没有改变位置
由于第一个变量scope在函数中第一次使用之前已经声明了,所以可以使用,
但是由于没有赋值,所以打印出来的值为undefined - 函数的两种创建方式
函数声明语法
js中的函数声明提升到外部脚本,或外部作用域的顶部
所以上面的代码类型于
function f1(name) {
console.log(name );
}
f1('name') ;
备注
相当于将函数定义提前了
函数表达式创建法
如下图
相当于
var f2 ;
f2('name') ;
f2 = function(name) {
console.log('什么节能快要到了!') ;
}
变量声明提前了,赋值语句没有变位置,因为函数没有定义,所以报错
2018-03-30 21:12:30
独在异乡为异客,每逢佳节倍思亲。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?