下面例子仅仅是思考变量提升使用

在实际开发中并不推荐使用相同名字的变量和函数!

  1. // 如果变量和函数同名的话,函数优先提升
  2. console.log(a);
  3. function a() {
  4. console.log('aaaaa');
  5. }
  6. var a = 1;
  7. console.log(a);

更多简单经典例子:

  1. <script>
  2. // 预解析运行原理
  3. // 题目一
  4. var a = 25;
  5. function abc() {
  6. alert(a);
  7. var a = 10;
  8. }
  9. abc();
  10. // 预解析原理
  11. // var a ;
  12. // function abc(){
  13. // var a;
  14. // alert(a);
  15. // a = 10;
  16. // }
  17. // a = 25;
  18. // abc();
  19.  
  20. // 题目二
  21. var a = 25;
  22. function abc() {
  23. alert(a);
  24. a = 10 ;
  25. }
  26. abc();
  27. // 预解析原理
  28. // var a ;
  29. // function abc(){
  30. // alert(a);
  31. // a = 10;
  32. // }
  33. // abc();
  34.  
  35. // 题目三
  36. var a = 25;
  37. alert(a);
  38. alert(b);
  39. function abc () {
  40. alert(a);
  41. a = b = 10 ;
  42. }
  43. alert(a);
  44. alert(b);
  45. abc();
  46. alert(a);
  47. alert(b);
  48.  
  49. // 预解析原理
  50. // var a;
  51. // function abc() {
  52. // alert(a);
  53. // a = b = 10;
  54. //
  55. // }
  56. // a = 25 ;
  57. //alert(a);
  58. //alert(b);
  59. //abc();
  60. //alert(a)
  61. //alert(b)
  62.  
  63. // 题目四(与题目三不同的是abc里面的是var a = b =10;)
  64. var a = 25;
  65. alert(a);
  66. alert(b);
  67. function abc () {
  68. alert(a);
  69. var a = b = 10 ;
  70. }
  71. alert(a);
  72. alert(b);
  73. abc();
  74. alert(a);
  75. alert(b);
  76. // 预解析原理
  77. //var a;
  78. //function abc() {
  79. // var a;
  80. // alert(a);
  81. // a = b = 10;
  82. // }
  83. // alert(a);
  84. // alert(b);
  85. // abc();
  86. // alert(a);
  87. // alert(b);
  88.  
  89. </script>

JavaScript--关于变量提升思考的更多相关文章

  1. javascript中变量提升的理解

    网上找了两个经典的例子 var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); // 10 var ...

  2. JavaScript的变量提升机制

    变量提升 JavaScript的变量提升有两种,用var声明的变量以及用function声明的变量. 用var声明的变量 我们先来看下面这段代码,a的值是多少 代码1 console.log(a); ...

  3. JavaScript中变量提升是语言设计缺陷

    首先纠正下,文章标题里的 “变量提升” 名词是随大流叫法,“变量提升” 改为 “标识符提升” 更准确.因为变量一般指使用 var 声明的标识符,JS 里使用 function 声明的标识符也存在提升( ...

  4. JavaScript的变量提升

    在JavaScript中,var变量具有函数级作用域,而且是整个函数作用域.为什么会是整个函数作用域呢?因为var变量具有变量(声明)提升功能,能将变量声明隐式的提升到函数体的顶部.这样做的一个好处就 ...

  5. Javascript 的变量提升与预解析

    一.什么是变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域.变量提升即将变量声明提升到它所在作用域的最开始的部分 二.怎么实现 ...

  6. javascript Hoisting变量提升

    1. 看人家举的两个例子,我认为这里的判断是否定义: !var 其实就是 指是否在函数function里面定义了.只有在funciton里面定义了了,js才hoist到最上面去找这个变量的值,否则就按 ...

  7. JavaScript:变量提升和函数提升

    第一篇文章中提到了变量的提升,所以今天就来介绍一下变量提升和函数提升.这个知识点可谓是老生常谈了,不过其中有些细节方面博主很想借此机会,好好总结一下. 今天主要介绍以下几点: 1. 变量提升 2. 函 ...

  8. JavaScript中变量提升------Hoisting

    原谅链接:http://www.cnblogs.com/damonlan/archive/2012/07/01/2553425.html 因为这个问题很是经典,而且容易出错,所以在介绍一次.哈哈.莫怪 ...

  9. JavaScript之变量提升

    变量提升:在JavaScript中,页面加载时,会将用var声明的变量提升到作用域的最前端,只能提升声明,不能提升赋值 如果变量先赋值再使用,可以省略关键字var 如果先使用变量,再赋值,不可以省略关 ...

随机推荐

  1. hbase 聚合操作

    hbase本身提供了 聚合方法可以服务端聚合操作 hbase中的CoprocessorProtocol机制. CoprocessorProtocol的原理比较简单,近似于一个mapreduce框架.由 ...

  2. Vuejs实战项目:登陆页面

    1.在view文件夹下创建login文件夹,创建index.vue:代表登录的组件 配置router.js,导入登录组件 import Vue from "vue"; import ...

  3. LA3029 City Game

    Bob is a strategy game programming specialist. In his new city building game the gaming environment ...

  4. Redis 混合存储最佳实践指南

    Redis 混合存储实例是阿里云自主研发的兼容Redis协议和特性的云数据库产品,混合存储实例突破 Redis 数据必须全部存储到内存的限制,使用磁盘存储全量数据,并将热数据缓存到内存,实现访问性能与 ...

  5. 【html、CSS、javascript-6】JavaScript

    JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 参考功能网站: ht ...

  6. 如约而至(walk)

    LCA大佬的做法: 考虑暴力的高斯消元,我们优化它. $\sum\limits_{j} gcd(i,j)^{c-d} i^d j^d x_j=b_i$ $\sum\limits_{j} gcd(i,j ...

  7. web前端学习(四)JavaScript学习笔记部分(6)-- js内置对象

    1.JS内置对象-什么是对象 1.1.什么是对象: JavaScript中的所有事物都是对象:字符串.数值.数组.函数 每个对象带有属性和方法 JavaScript允许自定义对象 1.2.自定义对象: ...

  8. nfs网络共享服务基础

    nfs原理 1.开启RPC服务 2.NFS向RPC服务注册启动的端口 3.用户向RPC询问NFS服务的端口 4.RPC返回端口给客户端 5.客户端通过获得的端口与NFS服务器进行数据传输 实验步骤 一 ...

  9. TSQL:让监控分析更简单更高效

    1. 前言 阿里时序时空数据库TSDB最新推出TSQL,支持标准SQL的语法和函数.用户使用熟悉的SQL,不仅仅查询更简单易用,用户还可以利用SQL强大的功能,实现更加复杂的计算分析. 2. 为什么需 ...

  10. webpack学习之—— 依赖图(Dependency Graph) 及 构建目标(Targets)

    Dependency Graph 任何时候,一个文件依赖于另一个文件,webpack 就把此视为文件之间有依赖关系.这使得 webpack 可以接收非代码资源(non-code asset)(例如图像 ...