JS代码的执行步骤与变量和函数的提升
来源:互联网 发布:数据挖掘招聘要求 编辑:程序博客网 时间:2024/06/05 04:32
Js代码分为两个执行步骤
1.预解析
提升(hoisting)
JavaScript代码在预解析阶段,会对以var声明的变量名,和function开头的语句块,进行提升操作
2.执行
变量的提升
alert(a); var a = 1;
提升后的代码模拟
var a;alert(a);a=1;
函数同名,如何提升?
在预处理阶段会将两个函数同时提升,但后来的会覆盖前面的
func1(); //last function func1(){ console.log('This is first func1'); } func1(); //last function func1(){ console.log('This is last func1'); }
提升后的代码模拟
function func1(){ console.log('This is first func1'); }//该函数被后一个覆盖。 function func1(){ console.log('This is last func1'); } func1(); //最终打印的都是last func1(); //最终打印的都是last
变量和函数同名
在提升的时候,如果有变量和函数同名,会忽略掉变量,只提升函数
alert(foo); //undefined 函数体 function foo(){} var foo = 2; alert(foo); //2
//预解析 提升后的代码
function foo(){}; alert(foo); foo=2; alert(foo);
函数表达式不会被提升
func(); var func = function(){ alert("你猜我会不会被调用"); } //提升后的代码 var func; func(); func = function(){ alert("你猜我会不会被调用"); };
阅读全文
0 0
- JS代码的执行步骤与变量和函数的提升
- js的变量提升和函数提升
- js的变量提升和函数提升
- 深入理解js的变量提升和函数提升
- 深入理解js的变量提升和函数提升
- 深入理解js的变量提升和函数提升
- JS变量名和函数名的提升
- JS面试中的的变量提升和函数声明
- JS中变量和函数的提升机制(hoisting)
- js 变量 函数名的提升
- JS变量和函数提升
- js中的变量提升和函数提升
- js变量提升 和函数提升
- js变量提升和函数提升
- js中同名函数和同名变量的执行问题
- Js中有关变量声明和函数声明提升的问题
- 关于js 的变量提升
- 关于js的变量提升
- 被你浪费了的CPU资源
- 最后一次
- 两亲性分子uva1606
- docker映射window本地文件夹的nginx的虚拟主机配置文件vhost.nginx.conf
- SVN版本控制工具
- JS代码的执行步骤与变量和函数的提升
- IndentationError:expected an indented block错误解决
- syslog简介——系统日志写入API
- JS闭包
- Node.js WEB服务器静态文件托管
- java 语法基础
- L1-048. 矩阵A乘以B
- 动漫人体结构初学教程
- hbase协处理器简介