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中没有块级作用域一说,只有函数作用域和全局作用域,在其中声明的变量和函数和其他语言的展现形式不同,在某些情况下不一定需要先定义后使用,函数和变量的使用可以在其声明之前,这到底是 ...
 
随机推荐
- java中final和static
			
final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义. final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变. final修饰对象的引用的时候,表示该引用不可变, ...
 - 浅谈IT企业挑选技术人员招聘几个要点
			
在实际人员招聘的一些感想总结,企业需要怎么样的人才,个人总结如下: 1.技术能力不是第一位 企业在招聘一个人的时候往往看你第一点不是技术实力,而是你个人言谈行为和态度,往往一个面试你的人员他不可能在半 ...
 - 小白学爬虫-批量部署Splash负载集群
			
整体目录如下: study@study:~/文档/ansible-examples$ tree Splash_Load_balancing_cluster Splash_Load_balancing_ ...
 - Codeforces Round #467 (Div. 1) B. Sleepy Game
			
我一开始把题目看错了 我以为是博弈.. 这题就是一个简单的判环+dfs(不简单,挺烦的一题) #include <algorithm> #include <cstdio> #i ...
 - Struts2(七) Struts2访问Servlet的API
			
当接受表单参数,向页面保持数据时.要用到Struts访问Servlet 的API .下面只做参考,有错误或不同意见可以发送邮箱2440867831@qq.com .建议大家看struts文档,源代码 ...
 - windows下安装和配置nginx
			
下载nginx 到官网下载window版的nginx http://nginx.org/ 配置环境变量 解压到本地的某个路径下, 打开cmd窗口,cd到nginx的目录下 这里要注意cd的时候要加/d ...
 - 程序员的自我救赎---12.2.3: 虚拟币交易平台(区块链) 下 【C#与以太坊通讯】
			
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...
 - 【视频编解码·学习笔记】11. 提取SPS信息程序
			
一.准备工作: 回到之前SimpleH264Analyzer程序,找到SPS信息,并对其做解析 调整项目目录结构: 修改Global.h文件中代码,添加新数据类型UINT16,之前编写的工程中,UIN ...
 - Mock Server文章链接
			
Mock Server文章链接 2017-06-14 1 Dreamhead (Zheng Ye) Moco可以提供以下服务: HTTP APIs Socket APIs REST API GitHu ...
 - .net core 2使用ef core 2.0以db first方法创建实体类
			
先安装以下三个包: Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFr ...