博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
变量提升
阅读量:5289 次
发布时间:2019-06-14

本文共 612 字,大约阅读时间需要 2 分钟。

代码示例:

​var color = "blue";        // 全局变量 colorfunction changeColor() {    console.log(color);    var color = "red";    console.log(color);}changeColor();

运行结果为:

​undefinedred

在执行函数时,函数内部声明的所有变量都会被隐式移动(或者说提升)到函数最开始的地方,并且被提升的只有变量的声明,而与之相关的赋值操作并不会提升,它还在其原来的位置上,也正因为这一特性,所以出现了与我们预期不符的结果。而实际上以上代码等同于如下代码:

​var color = "blue";        // 全局变量 colorfunction changeColor() {    var color;        // 将局部变量 color 声明放到函数开始地方    console.log(color);    color = "red";    // 对局部变量 color 进行赋值    console.log(color);}changeColor();

运行结果为:

​undefinedred

 

参考书籍:《JavaScript面向对象编程指南》

转载于:https://www.cnblogs.com/d0usr/p/11211032.html

你可能感兴趣的文章
析构器
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
https通讯流程
查看>>
Swagger简单介绍
查看>>
C# 连接SQLServer数据库自动生成model类代码
查看>>
关于数据库分布式架构的一些想法。
查看>>
BigDecimal
查看>>
Python语法基础之DataFrame
查看>>
Python语法基础之对象(字符串、列表、字典、元组)
查看>>
大白话讲解 BitSet
查看>>
sql语句中where与having的区别
查看>>
Python数据分析入门案例
查看>>
0x7fffffff的意思
查看>>
Java的值传递和引用传递
查看>>
HTML5的服务器EventSource(server-sent event)发送事件
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
检查 chrome 插件是否存在
查看>>
在mac中,npm安装或者卸载失败,提示没有权限
查看>>
155. Min Stack
查看>>