[Javascript] Hoisting in JavaScript
JavaScript in
2023-09-14 09:00:55 时间
- Variable Hoisting
// Variable Hoisting var myVariable = 'Outer Value'; var fn = function(){ alert(myVariable); var myVariable = 'New Local Value'; }; fn();
In complier, the code will be:
var myVariable = 'Outer Value'; var fn = function(){ var myVariable = undefined; alert(myVariable ); myVariable = 'New Local Value'; } fn(); //So the alert result will be undefined
Function Declaration vs Function Expression
function fnDeclaration(){ return 'This is function declaration'; } var fnExpression = function(){ return 'This is function expression'; }
- Function Declaration Hoisting
// Function Declaration Hoisting function foo(){ function bar() { return 1; } return bar(); function bar() { return 2; } } alert(foo());
In complier, the code will be:
function foo(){ function bar(){ return 1; } function bar(){ return 2; } return bar(); // 2 will be alerted }
- Function Expression Hoisting
// Function Expression Hoisting function foo2(){ var bar = function() { return 1; }; return bar(); var bar = function() { return 2; }; } alert(foo2());
In complier, the code will be:
function foo2(){ var bar = undefined; //variable is hoisted var bar = undefined; bar = function(){ //function expression is not hoisted return 1; } return bar(); }
So, variable & function declaration will be hoisted! But the function expression is really not be hosited.
相关文章
- a javascript error occurred in_in from of是什么意思
- javascript html转换成markdown,如何使用Turndown使用JavaScript将HTML转换为Markdown[通俗易懂]
- 这么做,你也可以开发JavaScript库!【留言送书】
- JavaScript实现图片预加载详解编程语言
- javascript for…in 和 for of区别详解编程语言
- 利用Oracle中IN函数进行数据查询(oracle带in函数)
- 深入Linux内核:IN后缀操作系统之旅(linux系统in后缀)
- MySQL中IN的用法和意义(mysql中in的意思)
- 深入剖析MySQL中IN和等于操作的差异与应用(mysql中in和等于)
- 以Oracle IN查询精准定位你要的信息(oracle使用in查询)
- MySQL中为什么不能使用IN子查询(mysql不能in子查询)
- 探索Oracle中IN查询的精彩之处(oracle中的in查询)
- 的区别Oracle中IN与的异同探究(oracle中in和=)
- 利用javascript/jquery对上传文件格式过滤的方法
- 初识javascript文档碎片
- Javascript学习笔记-详解in运算符
- 深入理解JavaScript系列(13)This?Yes,this!
- JavaScript中“过于”犀利地for/in循环使用示例
- javascript模拟枚举的简单实例
- javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
- javascript动态修改Li节点值的方法
- javascript检查浏览器是否支持flash的实现代码
- javascript中键盘事件用法实例分析
- JavaScript日期时间与时间戳的转换函数分享
- javascript初学者常用技巧