js 声明提升
- 声明提前
 变量在声明之前已经可以使用了
- js中的所有的变量声明都提升到函数体内的顶部 ,如下图  实际运行的情况是如下 function f1() { 
 -- var scope ;console.log(scope) ; 
 var scope = 'local' ;
 console.log(scope)
 }
 f1();
 备注:
 声明提前了,而赋值语句没有改变位置
 由于第一个变量scope在函数中第一次使用之前已经声明了,所以可以使用,
 但是由于没有赋值,所以打印出来的值为undefined
- 函数的两种创建方式
 函数声明语法
js中的函数声明提升到外部脚本,或外部作用域的顶部
所以上面的代码类型于
function f1(name) {
  console.log(name );
}
f1('name') ;
备注
相当于将函数定义提前了
函数表达式创建法
如下图

相当于
var f2 ;
f2('name') ;
f2 = function(name) {
  console.log('什么节能快要到了!') ;
}
变量声明提前了,赋值语句没有变位置,因为函数没有定义,所以报错
2018-03-30 21:12:30
js 声明提升的更多相关文章
- Js 变量声明提升和函数声明提升
		Js代码分为两个阶段:编译阶段和执行阶段 Js代码的编译阶段会找到所有的声明,并用合适的作用域将它们关联起来,这是词法作用域的核心内容 包括变量声明(var a)和函数声明(function a(){ ... 
- 一个经典的js中关于块级作用域和声明提升的问题
		function functions(flag) { if (flag) { function getValue() { return 'a'; } } else { function getValu ... 
- JS作用域理解(声明提升)
		1.JS解析步骤: a.预解析 将变量声明提升: 将函数声明及函数内容提升,可以理解成原来位置的函数在解析代码时已经提到代码初始位置: 块内的变量声明和函数声明也会被提升,例如if语句 遇到重名,只留 ... 
- js函数声明提升与变量提升
		变量提升 变量提升: 在指定作用域里,从代码顺序上看是变量先使用后声明,但运行时变量的 “可访问性” 提升到当前作用域的顶部,其值为 undefined ,没有 “可用性”. alert(a); // ... 
- JS执行顺序-函数声明提升、匿名函数、函数表达式
		大方向上: JS 是按照 代码块 进行 编译.执行 的. 学习至: 1.变量声明提升 2.新唐的博客 3.js中匿名函数的创建与调用方法分析 4.前端圣经 - <高程三> 5.深入理解变量 ... 
- 详解js变量声明提升
		之前一直觉会认为javascript代码执行是由上到下一行行执行的.自从看了<你不知道的JS>后发现这个观点并不完全正确.先来给大家举一个书本上的的例子: var a='hello wor ... 
- JS变量声明提升和函数声明提升
		JS代码在执行的时候会先找出执行代码中定义的变量和函数,对其进行声明. 例1:console.log(a); var a = 4; 此时输出undefined.a变量在执行console.log(a) ... 
- JS 函数提升&变量提升以及函数声明&函数表达式的区别
		感谢原文作者:迟早会有猫 原文链接:https://www.cnblogs.com/SidselLoong/p/10515809.html 今天看js的变量提升问题,里面提到了函数提升.然后发现自己之 ... 
- Js中有关变量声明和函数声明提升的问题
		在ECMAScript5中没有块级作用域一说,只有函数作用域和全局作用域,在其中声明的变量和函数和其他语言的展现形式不同,在某些情况下不一定需要先定义后使用,函数和变量的使用可以在其声明之前,这到底是 ... 
随机推荐
- CSS3的[att$=val]选择器
			1.实例源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ... 
- Linux查看网络的联机状态
			Linux查看网络的联机状态 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ netstat -a^C unix 3 [ ] 流 已连接 14923 @/tmp ... 
- BOM(浏览器对象模型)的一些操作
			一个完整的JavaScript实现由三部分组成: ECMAScript:核心,定义语言基础,规定了语言的组成部分(语法,类型,关键字,保留字,对象等) DOM:文档对象模型,·DOM把整个页面映射成一 ... 
- JAVA几种缓存技术介绍说明
			OSCache OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案. OSCache有以下特点: 我创建了一个群,群里不定期分享技术 ... 
- Python编程核心内容之一——Function(函数)
			Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 截至上篇随笔<Python数据结构之四--set(集合)>,Python基础知识也介绍好了.接下来准备干 ... 
- 在VCS仿真器中使用FSDB
			FSDB(Fast Signal Database)是Verdi支持的文件格式,用于保存仿真产生的信号波形.据Verdi文档说明,FSDB比标准的VCD格式节省磁盘空间,处理速度更快.要用VCS仿真器 ... 
- [USACO13NOV]没有找零No Change [TPLY]
			[USACO13NOV]没有找零No Change 题目链接 https://www.luogu.org/problemnew/show/3092 做题背景 FJ不是一个合格的消费者,不知法懂法用法, ... 
- Topshelf 一个简化Windows服务开发的宿主服务框架
			Topshelf是 基于.net框架开发的宿主服务框架.该框架简化了服务的创建,开发人员只需要使用 Topshelf编写一个控制台程序,就能安装为Windows服务.之所以这样原因非常简单:调试一个控 ... 
- 15.MySQL(三)
			索引类型 先创建表 mysql> CREATE TABLE test( -> id INT, -> username VARCHAR(16), -> city VARCHAR( ... 
- 简单谈谈js中Promise的用法
			首先先推荐一篇博文:http://blog.csdn.net/jasonzds/article/details/53717501 这篇博文很清晰的说明了Promise的用法,这里来简单总结一下: Pr ... 
