浅谈变量提升
时间:2019-09-09
本文章向大家介绍浅谈变量提升,主要包括浅谈变量提升使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
变量提升是面试中非常常见的一个问题
比如 var 和 let 的区别是什么?
答案之一就有 let 不会变量提升
1.概念
最基础的概念大家都知道
console.log(a); var a = 1;
// 输出
在代码中 使用 var 来声明变量的时候,会提到当前作用域的顶端,而赋值操作在原处不变
上面的两行代码相当于
var a; console.log(a); a = 1;
var a声明向上提升,a=1赋值留在原处
2.多个script的情况
<script> console.log(a) </script> <script> var a = 1; </script>
// 控制台报错
这样控制台就报错了
ReferenceError: a is not defined
变量提升不能跨script
3.其它情况
首先看不用var直接赋值
console.log(a); //ReferenceError: a is not defined a = 1;
同样报错,因为使用 var才会变量提升(我所知)
在 if 中
console.log(a) // undifined if(false){ var a = 1; }
尽管 if 不通过,还是提升了
4.函数提升
变量声明会提示,函数声明也会
console.log(foo); var foo=10; console.log(foo); function foo(){ } console.log(foo);
//输出 function a,10,10
函数会优先于变量 先提升
上面代码相当于
function a(){ } var a; console.log(a); a=10; console.log(a); console.log(a);
当时,如果用函数表达式,那就只提升了这个 a变量,符合之前的变量提升的逻辑
a(); var a = function () { console.log(1) }
//
原文地址:https://www.cnblogs.com/anxiaoyu/p/11490091.html
- IBM WebSphere MQ 7.5基本用法
- QPS的计算
- Django----中间件详解
- linux 添加用户到sudo中
- 机器学习之白话adaboost元算法
- 查看占用内存多的进程
- jboss EAP 6.2 + Message Drive Bean(MDB) 整合IBM Webshpere MQ 7.5
- 通过jenkins API去build一个job
- Django---分页器、中间件
- 启动jenkins服务错误
- 如果未来的AI拥有意识,你舍得不理它吗?
- centos下安装python3
- jboss:在standalone.xml中设置系统属性(system-properties)
- iptables
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- codeforce 272B Dima and Sequence
- 微软自家的.Net下的JavaScript引擎--- ClearScript
- HDU 1159.Common Subsequence【动态规划DP】
- Codeforce 270D Greenhouse Effect
- 地表最简单安装MySQL及配置的方法,没有之一
- HDOJ 1176 免费馅饼 -- 动态规划
- flex-grow计算公式
- Cypress系列(67)- 环境变量设置指南
- codeforce 270C Magical Boxes
- Java开发编程规范: 4.OOP 规约
- Codeforces 1323 div2题解ABC
- order排序
- HDU 1421 搬寝室 解题报告(超详细)
- codeforce 270B Multithreading
- flex-wrap align-content详解