JavaScript的局部变量和全局变量小知识
(了解一下,避免初学者犯错,但下面定义全局变量的做法并不推荐,只是让你们知道这是怎么一回事)
如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,例如:
function test () {
var message = "Hi"; // 局部变量 (解释:用var操作符定义的变量将成为定义该变量的作用域中的局部变量)
}
test();
alert (message); //此时发生错误
解释:因为变量message是在函数中使用var定义的。当函数被调用时,就会创建该变量并为其赋值。而在此之后,即函数调用完之后,这个变量又会立即被销毁,或者理解为该变量只在这个函数内有效,因此上面例子中的下一行代码 alert (message); 会发生错误。
不过呢,我们将var操作符省略掉,就会创建出一个全局变量,例如:(这样创建全局变量不推荐:首先难维护,其次给未经声明的变量赋值在文档模式中的严格模式上会抛出错误)
function test () {
message = "Hi"; // 全局变量
}
test();
alert (message); //此时会弹出Hi的弹框
省略了var操作符,message就成为了全局变量。所以,只要调用过一次test()函数,这个变量就有了定义,就可以在函数外部任何地方被访问到
JavaScript的局部变量和全局变量小知识的更多相关文章
- JavaScript中局部变量与全局变量的不同
JavaScript中局部变量与全局变量 我们知道,JavaScript的变量是松散型的变量,也就是说,其变量只需用var声明,其赋值的类型是不限定的.比如: var person=18; perso ...
- javascript 关于局部变量和全局变量
js中函数运行过程不仅仅是单纯的局部变量覆盖全局变量.和函数里面的声明情况有关. 比方: <script> var a =1; function test(){ alert(a); //a ...
- 对JavaScript中局部变量、全局变量和闭包的理解
对js中局部变量.全局变量和闭包的理解 局部变量 对于局部变量,js给出的定义是这样的:在 JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它.(该变量的作用域 ...
- javascript当中局部变量和全局变量
2)局部变量和全局变量 马克-to-win:浏览器里面 window 就是 global,通常可以省.nodejs 里没有 window,但是有个叫 global 的.例 3.2.1<html& ...
- javascript实用技巧,js小知识
一.js整数的操作 使用|0和~~可以将浮点转成整型且效率方面要比同类的parseInt,Math.round 要快,在处理像素及动画位移等效果的时候会很有用.性能比较见此. var foo = (1 ...
- JavaScript关于对象的一些小知识
javascript的对象 javascriot(之后用js代替)中基本数据类型之一,是复合类型的数据. 对象在js中应用十分广泛,几乎所有的的事物都是做对象,js的对象拥有自己的属性和方法的数据 在 ...
- Javascript中的局部变量、全局变量的详解与var、let的使用区别
前言 Javascript中的变量定义方式有以下三种方式:1.直接定义变量,var与let均不写: a = 10; 2.使用var关键字定义变量 var a = 10; 3.使用let关键字定义变量 ...
- JavaScript局部变量和全局变量的理解
原文链接:http://www.cnblogs.com/eric-qin/p/4166552.html JavaScript局部变量和全局变量的理解 1 2 3 4 5 6 7 8 9 10 &l ...
- javascript 局部变量和全局变量
刚开始学js,遇到了一个奇怪的问题,查找之后知道了答案 需要记住两句话 1 Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分).切记,是f ...
随机推荐
- Vue开发与调试工具
vscode: Visual Studio Code https://code.visualstudio.com/Download 可以下载各个版本的,Windows/ Debian /Mac 等 W ...
- [原][飞行仿真]helios与dcs world安装,详尽教程
可以参考的博客: http://www.insky.cn/bbs/forum.php?mod=viewthread&tid=58175 http://www.insky.cn/bbs/foru ...
- 自定义 Cordova插件(基础篇)
cordova自定义插件 注意:存放自定义cordova插件目录不能有空格可能会报错 cordova的安装 下载node.js,安装完成后你可以在命令行中使用node和npm. 安装cordova使用 ...
- [Linux]安装pyenv
python多版本管理pyenv 网址:https://blog.csdn.net/yingfeng_yang/article/details/82527321 Ubuntu16.04安装pyenv1 ...
- 简单了解 DLL中, .def 文件及C#调用C++方法
DLL中导出函数的声明有两种方式: 1.在函数声明中加上__declspec(dllexport) //以下内容为 .h 文件中的内容 //向外界提供的端口 extern"C" _ ...
- mac上运行window程序。
wine https://wiki.winehq.org/Wine_User%27s_Guide#Quick_start #使用brew brew install Caskroom/cask/xqua ...
- 解决Git Revert操作后再次Merge代码被冲掉的问题
转:https://blog.csdn.net/paul_wei2008/article/details/77477932 https://blog.csdn.net/cxn945/article/d ...
- Codeforces Round #422 (Div. 2)E. Liar sa+st表+dp
题意:给你两个串s,p,问你把s分开顺序不变,能不能用最多k段合成p. 题解:dp[i][j]表示s到了前i项,用了j段的最多能合成p的前缀是哪里,那么转移就是两种,\(dp[i+1][j]=dp[i ...
- React文档(二十三)Web Components
React和web components是为了解决不同问题而创立的.web components为可重用组件提供了健壮的封装,而React提供了声明式的库来保持DOM和数据同步.这两点是互相补充的.作 ...
- 简化kubernetes应用部署工具之Helm应用部署
介绍 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的a ...