JavaScript--关于变量提升思考
下面例子仅仅是思考变量提升使用:
在实际开发中并不推荐使用相同名字的变量和函数!
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--关于变量提升思考相关推荐
- JavaScript中变量提升是什么?如何实现?
在进行web前端开发的时候,我们经常会遇到变量提升的情况,那么JS在解析变量的时候是如何做到提升的呢?今天小千就来带大家了解一下. 首先在JS中涉及两种作用域的问题,那么什么是作用域呢? 作用域是代码 ...
- JavaScript:变量提升作用域
作用域是JavaScript中听上去感觉很简单,其实比较麻烦的一个特性,什么是作用域?我看书籍有一个相对的官方解释:作用域(scope,或译有效范围)就是变量和函数的可访问范围,即作用域控制着变量和函 ...
- JavaScript之变量提升
1.什么是变量提升(Hoisting)? Javascript中执行上下文 (特别是创建和执行阶段)工作方式的一种认识,在ES6之前是找不到变量提升这个词的 "变量提升"意味着变量 ...
- JavaScript hoisting(变量提升)学习总结
定义:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部. JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明. 例如一下两个例子: 例1: ...
- JavaScript的变量提升
变量提升的表现是,无论在函数中何处位置声明的变量,好像都被提升到了函数的首部,可以在变量声明前访问到而不会报错.简单来说就是通过解析和预编译为代码的函数变量创建上下文环境,使得变量在生命前就可以访问. ...
- javaScript变量提升以及函数提升
变量的声明赋值 var a = 1; 上面的代码先声明变量 a,然后在变量 a 与数值 1 之间建立引用关系,称为将数值 1 "赋值"给变量 a.以后,引用变量名 a 就会得到数值 ...
- javascript变量提升/函数提升
首先 javascript 是一种弱类型.动态的.解释型的脚本语言. 弱类型:类型检查不严格,偏向于容忍隐式类型转换. 强类型:类型检查严格,偏向于不容忍隐式类型转换. 动态类型:运行的时候执行类型检 ...
- JavaScript专题(一)变量提升与预编译,一起去发现Js华丽的暗箱操作
JavaScript之变量与函数提升 相信阅读完<前端进阶系列>的朋友们已经对Js中经典的知识点有所了解.本系列的第一篇选择了一个值得讨论的问题--变量提升,我们会从遇到问题.分析问题.解 ...
- JavaScript 笔记(2) -- 类型转换 正则表达 变量提升 表单验证
目录: typeof, null, undefined, valueOf() 类型转换 正则表达式 错误: try, catch, throw 调试工具 变量提升 strict 严格模式 使用误区 ...
最新文章
- Git与github基本操作
- JSP EL 表达式取request parameter
- 关于 Angular 应用 tsconfig.json 中的 target 属性
- MySQL如何创建沙箱,沙箱环境搭建 - osc_y8w65yuq的个人空间 - OSCHINA - 中文开源技术交流社区...
- python爬虫requests库_Python爬虫(三)Requests库
- CVPR 2020 分方向论文大盘点合集
- 2018年最实用机器学习项目Top 6(附开源链接)
- Java基础知识之Map:compute, computeIfAbsent, computeIfPresent
- 圣诞好礼之Grid视频
- 如何在Python中打印异常?
- gcc -nostartfiles; -nodefaultlibs; -nostdlib;-f...
- 在UITextView显示HTML,以及NSAttributedString乱码问题解决 swift
- Qt编译Android库
- flask 应用程序的工厂函数
- javasprit基础用法
- 金融远期合约与金融期货合约
- 基于java火车购票系统
- 家用计算机做raid 2018,让电脑速度翻倍的方法,手把手教你组建RAID!
- Docker curriculum (2): 构建自己的镜像
- python大气校正_sen2cor批量大气校正Sentinel2数据——python代码
热门文章
- Spring Boot + JSP
- Java泛型初探————泛型通配
- eclipse项目一直显示有错,但是一直找不到错误在哪里
- 新手学习c语言的方法,学习C语言方法“新手必看”
- 730阵列卡支持多大硬盘_3分钟告诉你:OPPO Reno普通版和旗舰版的差距到底有多大...
- php ip2long bug,PHP代码ip2long 循环有关问题
- mysql max case连用_mysql 嵌套 case when 的问题
- 数据链路层差错检验循环冗余码过程图示
- Java程序员周末时间搞锭银行信息管理系统毕业设计(java+springboot+mybatis+mysql+vue+elementui)等实现
- 基于java springboot+mybatis学生学科竞赛管理管理系统设计和实现