文档章节

js(javascript)小谈变量声明(显隐声明,声明提前)

哟猫Intry
 哟猫Intry
发布于 2016/06/16 16:22
字数 367
阅读 4
收藏 0
var a=5;
function fun(){
    a=0;         
    alert(a);         //0
    alert(this.a);    //5
    var a; 
    alert (a);        //0
    
}
fun();

以上代码  将会输出  0 ,5,0.
首先在js中我们的变量声明赋值分为两个部分 。
1.变量的声明 var a;2.变量的赋值 a=2;
但是一般我们会把变量的声明和赋值写在 一起 也就是  var a=2;
而在js 中变量的声明会被提前到 当前作用域的开始,也就是说以上代码和下面代码是等价的

var a=5;
function fun(){
    var a;           //变量的声明提前
    a=0;              //赋值语句保持不变
    alert(a);         //0
    alert(this.a);    //5
    alert (a);        //0
    
}

所以 alert(a)其实是输出的局部变量 a的值,this.a 则是全局变量a 的值,以上是介绍变量的声明提前
下面我们的代码将如下修改

var a=5;
function fun(){
    a=0;              
    alert(a);         //0
    alert(this.a);    //0
    alert (a);        //0
    
}

这时候我们所有的输出值都为0;
我们声明变量分为显示声明(var a)和隐式声明 (a);
当我们一个函数内部的局部变量采用隐式声明的方式,那么这个变量就不在是一个局部变量,而是一个全局变量,
所以相当于 给全局变量a 赋值 0;这样输出的全部是a。

点击进入JS强化教程:http://www.h5edu.cn/htm/step/h5edu_44.html

© 著作权归作者所有

共有 人打赏支持
哟猫Intry
粉丝 0
博文 46
码字总数 31138
作品 0
昌平
私信 提问
javascript变量提升详解

js变量提升 对于大多数js开发者来说,变量提升可以说是一个非常常见的问题,但是可能很多人对其不是特别的了解。所以在此,我想来讲一讲。 先从一个简单的例子来入门: 你觉得以上的代码会输...

陈陈jg
2018/08/23
0
0
js 变量声明 (var使用与不使用的区别)

JS中变量申明分显式申明和隐式申明 var obj={} 显式申明 局部 obj={} 隐式申明 全局 当我们使用访问一个没有声明的变量时,JS会报错。而当我们给一个没有声明的变量赋值时,JS不会报错,相反...

柴高八斗之父
2017/11/03
0
0
JavaScript 声明提前机制

声明提前机制 在JavaScript存在着这样一种预处理机制,即浏览器在解析JS代码时会将var声明的变量和function声明的函数提升到当前作用域的顶部。但是解析JS代码时对var和function关键字声明的...

魏亚林
2018/08/09
0
0
Js 变量声明提升和函数声明提升

Js代码分为两个阶段:编译阶段和执行阶段 Js代码的编译阶段会找到所有的声明,并用合适的作用域将它们关联起来,这是词法作用域的核心内容 包括变量声明(var a)和函数声明(function a(){})在...

IrisHuang
2018/12/20
0
0
前端入门8-JavaScript语法之数据类型和变量

声明 本系列文章内容全部梳理自以下几个来源: 《JavaScript权威指南》 MDN web docs Github:smyhvae/web Github:goddyZhao/Translation/JavaScript 作为一个前端小白,入门跟着这几个来源学...

请叫我大苏
2018/12/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

AWK用法入门详解

AWK用法入门详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将...

linjin200
2分钟前
0
0
Centos7 搭建Gitlab服务器并配置项目全过程

一、在Centos7上安装Gitlab 之前尝试过直接yum安装,但服务器从该yum源下载实在太慢,故手动下载rpm包安装。 1.先安装相关依赖 yum -y install policycoreutils openssh-server openssh-clie...

sjcehui2010
22分钟前
1
0
实现基于JWT的Token登录验证功能

前言 放假之前做了几个小项目+课设,都用到了token实现登录验证和权限判断,然鹅当时和同组的小伙伴也都是第一次接触到了token,于是乎都是一脸懵逼(xjbx)的写完了登录验证的前后端逻辑(我...

鱼煎
23分钟前
0
0
数学表达式计算 MathParser.org-mXparser

背景 在系统中需要计算公式,参数可以配置,类似excel的情况,可以实现数据的计算。 mXparser 实例 public static void main(String[] args) throws InterruptedException { Argume...

翱翔fly
28分钟前
1
0
即将开源 | 2亿用户背后的Flutter应用框架Fish Redux

背景 在闲鱼深度使用 Flutter 开发过程中,我们遇到了业务代码耦合严重,代码可维护性糟糕,如入泥泞。对于闲鱼这样的负责业务场景,我们需要一个统一的应用框架来摆脱当下的开发困境,而这也...

阿里云官方博客
37分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部