Javascript变量提升
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript变量提升,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1676字,纯文字阅读大概需要3分钟。
内容图文
![Javascript变量提升](/upload/InfoBanner/zyjiaocheng/641/a43551e78d9b4804b48da32576c64964.jpg)
- 原理:JavaScript执行代码的过程分为两步,第一步是对代码的解析读取,第二步才是执行。在解析代码的过程中会将声明提升至顶部,然后从上往下执行。
- 变量提升:就是变量的声明和函数的声明总被解释器悄悄地提升到方法体的最顶部。但是变量的赋值初始化不会提升;函数提升的优先级高于变量提升的优先级;
代码示范:
//变量可以先使用,再声明
x=5;
console.log(x);
var x;
//由于变量赋值不会提升,所以会显示y:undefined
var x=5;
var y;
console.log(x+y);
y=7;
//来源网络
console.log(foo);
foo();//可以执行
var foo=10;
foo();//foo已经被赋值为一个变量,无法执行foo为函数
console.log(foo);
function foo(){
var a;
console.log(a);
a=12;
console.log(a);
}
console.log(foo);
实际的执行顺序为:
function foo(){
var a;
console.log(a);
a=12;
console.log(a);
}
var foo;
console.log(foo);
foo();//可以执行
foo=10;
foo();//foo已经被赋值为一个变量,无法执行foo为函数
console.log(foo);
console.log(foo);
如果将第二个foo()去掉,执行结果为:
[Function: foo]
undefined
12
10
10
function foo(){
var x=1;
}
foo();
console.log(x);
//结果是报错
function foo(){
console.log(x);
}
var x=1;
foo();
//结果是1
function foo(){
console.log(x);
}
foo();
var x=1;
//结果是undefined
console.log(f1());
console.log(f2);
function f1(){console.log('aa')};
var f2 = function() {};
//输出结果为:aa undefined undefined(第一个undefined是因为f1()函数没有return返回值,第二个是f2没有初始化)
//使用匿名函数不会存在函数提升,因为函数名称使用变量表示的,只会存在变量提升。
function test(){ //函数声明到最上面
console.log(1234);
}
var test; //变量的声明
test=function(){ //变量的赋值
console.log(5678);
}
console.log(test);
test();
//输出的结果为5678,因为下面的函数会覆盖上面的声明。
八面圆
发布了1 篇原创文章 · 获赞 0 · 访问量 10
私信
关注
内容总结
以上是互联网集市为您收集整理的Javascript变量提升全部内容,希望文章能够帮你解决Javascript变量提升所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。