javascript 变量提升


源代码

console.log(x); // undefined
// console.log(y); // 这个会报为定义的错误
f(); // f 是个函数,函数定义也提升,函数定义就是定义实现,所以f是可以调用的(f不是通过赋值获得的引用)。
// f1(); // 会报 undefined 不是一个函数的错误,因为f1是一个函数类型的变量(不管什么类型他也是个变量),定义提升了,所以f1的值是undefined

var x = 3;

function f(){
    console.log("ffff");
}

var f1 = function() {
    console.log("f111");    
};

效果等同

var x;
function f(){
    console.log("ffff");
}
var f1;

console.log(x); // undefined
// console.log(y);
f(); 
// f1();

x = 3;

f1 = function() {
    console.log("f111");    
};

总结

  1. 变量定义提升,只提升定义,不会初始化值
  2. 函数定义时,直接进行函数定义函数可以调用,变量赋值的方式定义函数会报错。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、浏览器的解析过程 1、预解析在预解析之初,即在js的 “ = ”号发挥作用之前,先会做三件事:  最先寻找带有...
    __Vivin阅读 364评论 0 0
  • ECMAScript在浏览器端运行被称为JavaScript 在浏览器端JavaScript是一种描述型脚本语言,...
    MonkeyDwwl阅读 561评论 0 1
  • JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。以下两个实例将获得相同的结果: 下面代...
    BaibaiWang阅读 317评论 0 1
  • 每一次和朋友聊天时,总能扯到童年时的一些小事,聊起来总是那么滔滔不绝,好像怎么也停不下来,似乎还有点不想停...
    袅袅桐声阅读 192评论 0 0
  • 昨天师兄给我讲了一下关于PID的知识,说起来PID在专业课也学过,但是并没有真正理解到位,再次温习,觉得有新的发现...
    william_yan阅读 1,731评论 0 5

友情链接更多精彩内容