JavaScript--关于变量提升思考
下面例子仅仅是思考变量提升使用:
在实际开发中并不推荐使用相同名字的变量和函数!

// 如果变量和函数同名的话,函数优先提升
console.log(a);
function a() {
console.log('aaaaa');
}
var a = 1;
console.log(a);
更多简单经典例子:
<script>
// 预解析运行原理
// 题目一
var a = 25;
function abc() {
alert(a);
var a = 10;
}
abc();
// 预解析原理
// var a ;
// function abc(){
// var a;
// alert(a);
// a = 10;
// }
// a = 25;
// abc(); // 题目二
var a = 25;
function abc() {
alert(a);
a = 10 ;
}
abc();
// 预解析原理
// var a ;
// function abc(){
// alert(a);
// a = 10;
// }
// abc(); // 题目三
var a = 25;
alert(a);
alert(b);
function abc () {
alert(a);
a = b = 10 ;
}
alert(a);
alert(b);
abc();
alert(a);
alert(b); // 预解析原理
// var a;
// function abc() {
// alert(a);
// a = b = 10;
//
// }
// a = 25 ;
//alert(a);
//alert(b);
//abc();
//alert(a)
//alert(b) // 题目四(与题目三不同的是abc里面的是var a = b =10;)
var a = 25;
alert(a);
alert(b);
function abc () {
alert(a);
var a = b = 10 ;
}
alert(a);
alert(b);
abc();
alert(a);
alert(b);
// 预解析原理
//var a;
//function abc() {
// var a;
// alert(a);
// a = b = 10;
// }
// alert(a);
// alert(b);
// abc();
// alert(a);
// alert(b); </script>
JavaScript--关于变量提升思考的更多相关文章
- javascript中变量提升的理解
网上找了两个经典的例子 var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); // 10 var ...
- JavaScript的变量提升机制
变量提升 JavaScript的变量提升有两种,用var声明的变量以及用function声明的变量. 用var声明的变量 我们先来看下面这段代码,a的值是多少 代码1 console.log(a); ...
- JavaScript中变量提升是语言设计缺陷
首先纠正下,文章标题里的 “变量提升” 名词是随大流叫法,“变量提升” 改为 “标识符提升” 更准确.因为变量一般指使用 var 声明的标识符,JS 里使用 function 声明的标识符也存在提升( ...
- JavaScript的变量提升
在JavaScript中,var变量具有函数级作用域,而且是整个函数作用域.为什么会是整个函数作用域呢?因为var变量具有变量(声明)提升功能,能将变量声明隐式的提升到函数体的顶部.这样做的一个好处就 ...
- Javascript 的变量提升与预解析
一.什么是变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域.变量提升即将变量声明提升到它所在作用域的最开始的部分 二.怎么实现 ...
- javascript Hoisting变量提升
1. 看人家举的两个例子,我认为这里的判断是否定义: !var 其实就是 指是否在函数function里面定义了.只有在funciton里面定义了了,js才hoist到最上面去找这个变量的值,否则就按 ...
- JavaScript:变量提升和函数提升
第一篇文章中提到了变量的提升,所以今天就来介绍一下变量提升和函数提升.这个知识点可谓是老生常谈了,不过其中有些细节方面博主很想借此机会,好好总结一下. 今天主要介绍以下几点: 1. 变量提升 2. 函 ...
- JavaScript中变量提升------Hoisting
原谅链接:http://www.cnblogs.com/damonlan/archive/2012/07/01/2553425.html 因为这个问题很是经典,而且容易出错,所以在介绍一次.哈哈.莫怪 ...
- JavaScript之变量提升
变量提升:在JavaScript中,页面加载时,会将用var声明的变量提升到作用域的最前端,只能提升声明,不能提升赋值 如果变量先赋值再使用,可以省略关键字var 如果先使用变量,再赋值,不可以省略关 ...
随机推荐
- 一维、二维数组 与 常用的返回数组 以及 fetch_all与fetch_row的区别
一维数组:单行单列的数组. 二维数组:多行多列的数组. (至少两行两列) 索引数组: fetch_all() 返回所有数组 fetch_row() 返回一行或一列数组 (第二行需要输入两 ...
- 二叉树遍历问题、时间空间复杂度、淘汰策略算法、lru数据结构、动态规划贪心算法
二叉树的前序遍历.中序遍历.后序遍历 前序遍历 遍历顺序规则为[根左右] ABCDEFGHK 中序遍历 遍历顺序规则为[左根右] BDCAEHGKF 后序遍历 遍历顺序规则为[左右根] DCBHKGF ...
- HDFS常用Java API
- 启动easy-mock
1.启动mongodb 启动mongodb服务器: /usr/local/mongodb/bin/mongod -config /usr/local/mongodb/data/mongodb.co ...
- Highcharts 饼图数值显示在图形上
1.引用js文件 <script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1 ...
- 7 个令人兴奋的 JavaScript 新特性
前言 一个ECMAScript标准的制作过程,包含了Stage 0到Stage 4五个阶段,每个阶段提交至下一阶段都需要TC39审批通过.本文介绍这些新特性处于Stage 3或者Stage 4阶段,这 ...
- LintCode_114 不同的路径,115 不同的路径 II
题目 有一个机器人的位于一个M×N个网格左上角(下图中标记为'Start'). 机器人每一时刻只能向下或者向右移动一步.机器人试图达到网格的右下角(下图中标记为'Finish'). 问有多少条不同的路 ...
- 【洛谷】P1567 统计天数
P1567 统计天数 题目背景 统计天数 题目描述 炎热的夏日,KC非常的不爽.他宁可忍受北极的寒冷,也不愿忍受厦门的夏天.最近,他开始研究天气的变化.他希望用研究的结果预测未来的天气. 经历千辛万苦 ...
- angular.module()创建、获取、注册angular中的模块
// 传递参数不止一个,代表新建模块;空数组代表该模块不依赖其他模块 var createModule = angular.module("myModule", []); // 只 ...
- Calendar to julian date format
1.JULIAN DATE 定义 2.示例: 定义枚举: public enum JulianDateType { /// <summary> /// J ...