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

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

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>

转载于:https://www.cnblogs.com/mrszhou/p/7665802.html

JavaScript--关于变量提升思考相关推荐

  1. JavaScript中变量提升是什么?如何实现?

    在进行web前端开发的时候,我们经常会遇到变量提升的情况,那么JS在解析变量的时候是如何做到提升的呢?今天小千就来带大家了解一下. 首先在JS中涉及两种作用域的问题,那么什么是作用域呢? 作用域是代码 ...

  2. JavaScript:变量提升作用域

    作用域是JavaScript中听上去感觉很简单,其实比较麻烦的一个特性,什么是作用域?我看书籍有一个相对的官方解释:作用域(scope,或译有效范围)就是变量和函数的可访问范围,即作用域控制着变量和函 ...

  3. JavaScript之变量提升

    1.什么是变量提升(Hoisting)? Javascript中执行上下文 (特别是创建和执行阶段)工作方式的一种认识,在ES6之前是找不到变量提升这个词的 "变量提升"意味着变量 ...

  4. JavaScript hoisting(变量提升)学习总结

    定义:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部. JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明. 例如一下两个例子: 例1: ...

  5. JavaScript的变量提升

    变量提升的表现是,无论在函数中何处位置声明的变量,好像都被提升到了函数的首部,可以在变量声明前访问到而不会报错.简单来说就是通过解析和预编译为代码的函数变量创建上下文环境,使得变量在生命前就可以访问. ...

  6. javaScript变量提升以及函数提升

    变量的声明赋值 var a = 1; 上面的代码先声明变量 a,然后在变量 a 与数值 1 之间建立引用关系,称为将数值 1 "赋值"给变量 a.以后,引用变量名 a 就会得到数值 ...

  7. javascript变量提升/函数提升

    首先 javascript 是一种弱类型.动态的.解释型的脚本语言. 弱类型:类型检查不严格,偏向于容忍隐式类型转换. 强类型:类型检查严格,偏向于不容忍隐式类型转换. 动态类型:运行的时候执行类型检 ...

  8. JavaScript专题(一)变量提升与预编译,一起去发现Js华丽的暗箱操作

    JavaScript之变量与函数提升 相信阅读完<前端进阶系列>的朋友们已经对Js中经典的知识点有所了解.本系列的第一篇选择了一个值得讨论的问题--变量提升,我们会从遇到问题.分析问题.解 ...

  9. JavaScript 笔记(2) -- 类型转换 正则表达 变量提升 表单验证

    目录:  typeof, null, undefined, valueOf() 类型转换 正则表达式 错误: try, catch, throw 调试工具 变量提升 strict 严格模式 使用误区 ...

最新文章

  1. Git与github基本操作
  2. JSP EL 表达式取request parameter
  3. 关于 Angular 应用 tsconfig.json 中的 target 属性
  4. MySQL如何创建沙箱,沙箱环境搭建 - osc_y8w65yuq的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. python爬虫requests库_Python爬虫(三)Requests库
  6. CVPR 2020 分方向论文大盘点合集
  7. 2018年最实用机器学习项目Top 6(附开源链接)
  8. Java基础知识之Map:compute, computeIfAbsent, computeIfPresent
  9. 圣诞好礼之Grid视频
  10. 如何在Python中打印异常?
  11. gcc -nostartfiles; -nodefaultlibs; -nostdlib;-f...
  12. 在UITextView显示HTML,以及NSAttributedString乱码问题解决 swift
  13. Qt编译Android库
  14. flask 应用程序的工厂函数
  15. javasprit基础用法
  16. 金融远期合约与金融期货合约
  17. 基于java火车购票系统
  18. 家用计算机做raid 2018,让电脑速度翻倍的方法,手把手教你组建RAID!
  19. Docker curriculum (2): 构建自己的镜像
  20. python大气校正_sen2cor批量大气校正Sentinel2数据——python代码

热门文章

  1. Spring Boot + JSP
  2. Java泛型初探————泛型通配
  3. eclipse项目一直显示有错,但是一直找不到错误在哪里
  4. 新手学习c语言的方法,学习C语言方法“新手必看”
  5. 730阵列卡支持多大硬盘_3分钟告诉你:OPPO Reno普通版和旗舰版的差距到底有多大...
  6. php ip2long bug,PHP代码ip2long 循环有关问题
  7. mysql max case连用_mysql 嵌套 case when 的问题
  8. 数据链路层差错检验循环冗余码过程图示
  9. Java程序员周末时间搞锭银行信息管理系统毕业设计(java+springboot+mybatis+mysql+vue+elementui)等实现
  10. 基于java springboot+mybatis学生学科竞赛管理管理系统设计和实现