<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="utf-8"/>
<title></title>
<script src="../js/jquery-1.10.2.js"></script>
<script>
// 1 i为全局变量 输出全局变量
function myName() {
i = '全局变量';
}
myName();
function sayName() {
alert(i);
}
sayName(); // 2 i为局部变量 运行出错 显示i未定义
function myName() {
var i='局部变量';
}
myName();
function sayName() {
alert(i);
}
sayName(); // 3 将1中的myName()去掉 运行出错 显示i未定义,虽然声明了函数,但是没有调用函数,函数中的i的赋值失效。
function myName() {
i = '全局变量';
}
function sayName() {
alert(i);
}
sayName(); // 4 将1中的myName()放到sayName()的下面 运行出错 显示i未定义,虽然声明了函数 调用了函数 但是因为javascript调用的函数自上而下运行,
// 当运行sayName时并没有运行myName().
function myName() {
i = '全局变量';
}
function sayName() {
alert(i);
}
sayName();
myName(); // 5 运行结果显示是全局变量。虽然变量名称相同,但是一个是全局变量,一个是局部变量,有着本质的区别,局部变量只能在本函数之内使用
var i = '全局变量';
function myName() {
var i = '局部变量';
}
myName();
function sayName() {
alert(i);
}
sayName(); // 6 将5的局部变量改成全局变量,运行结果显示改变的全局变量
var i = '全局变量';
function myName() {
i = '改变的全局变量';
}
myName();
function sayName() {
alert(i);
}
sayName(); // 7 运行结果显示undefined,因为代码的执行顺序是从上到下的,在输出i之前并只定义了i,没有对i初始化。
var i;
function sayName() {
alert(i);
i = '全局变量';
}
sayName(); // 8 运行结果显示全局变量,在输出之前初始化i就没有问题了
var i;
function sayName() {
i = '全局变量';
alert(i);
}
sayName();
// 9运行结果显示undefined,因为输出的是局部变量,而局部变量得初始化在输出之后。
var i = '全局变量';
function sayName() {
alert(i);
var i = '局部变量';
}
sayName();
</script>
</head>
<body> </body>
</html>

 

总结javascript中的全局变量和局部变量的区别以及声明函数和调用函数的区别的更多相关文章

  1. javascript学习笔记(二):定义函数、调用函数、参数、返回值、局部和全局变量

    定义函数.调用函数.参数.返回值 关键字function定义函数,格式如下: function 函数名(){ 函数体 } 调用函数.参数.返回值的规则和c语言规则类似. <!DOCTYPE ht ...

  2. python线程中的全局变量与局部变量

    在python多线程开发中,全局变量是多个线程共享的数据,局部变量是各自线程的,非共享的. 如下几种写法都是可以的: 第一种:将列表当成参数传递给线程 from threading import Th ...

  3. Python中的全局变量与局部变量的区别

    全局变量与局部变量两者的本质区别就是在于作用域 用通俗的话来理解的话, 全局变量是在整个py文件中声明,全局范围内都可以访问 局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地 ...

  4. python中的全局变量和局部变量

    python中,对于变量作用域的规定有些不一样. 在诸如C/C++.java等编程语言中,默认在函数的内部是能够直接訪问在函数外定义的全局变量的,可是这一点在python中就会有问题.以下是一个样例. ...

  5. python中的全局变量和局部变量(转)

    python中,对于变量作用域的规定有些不一样. 在诸如C/C++.java等编程语言中,默认在函数的内部是能够直接訪问在函数外定义的全局变量的,可是这一点在python中就会有问题.以下是一个样例. ...

  6. python中的全局变量、局部变量、实例变量

    1.全局变量:在模块内,在所有函数.类外面. 2.局部变量:在函数内,在类方法内(未加self修饰的) 3.静态变量:在类内,但不在类方法内.[共同类所有,值改变后,之后所有的实例对象也改变] 4.实 ...

  7. SQL中的全局变量和局部变量(@@/@)

    在SQL中,我们常常使用临时表来存储临时结果,对于结果是一个集合的情况,这种方法非常实用,但当结果仅仅是一个数据或者是几个数据时,还要去建一个表,显得就比较麻烦,另外,当一个SQL语句中的某些元素经常 ...

  8. Java中的全局变量与局部变量

    全局变量:也叫成员变量,是指在类中定义的变量:它在整个类中都有效 全局变量又可分为:类变量和实例变量 1.类变量:又叫静态变量  用static修饰  它可以直接用类名调用  也可以用对象调用   而 ...

  9. java中的全局变量、局部变量与静态常量的区别

    java中的变量类型分类: 类变量:独立于方法之外的变量,用 static 修饰.实例变量:独立于方法之外的变量,不过没有 static 修饰.局部变量:类的方法中的变量.比如: public cla ...

随机推荐

  1. 5、ASP.NET MVC入门到精通——NHibernate代码映射

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...

  2. 移动端UC /QQ 浏览器的部分私有Meta 属性

    <meta name="format-detection" content ="telephone=no"/>   格式检测 禁止识别我们页面中的数 ...

  3. 我和Ajax的故事

    我和Ajax结缘是在2015年的3月份,当时的项目需要Ajax技术来实现,但对于我来说完全是全新的名词,自己就上网上查找相关资料,结局很明显,知道概念但是具体的是什么东西根本傻傻不明白,后来这个技术是 ...

  4. Dog_Hybird的诞生

    起因 开玩笑说“iOS搞不动了”,另外一方面iOS组的哥哥们给力,少一个我也妥妥的.又听闻web前端组来了一个不得了的人物,“老司机,带带我”这种机会不能错过,1个多月前就申请转web前端了.开始是苦 ...

  5. FusionCharts的使用方法(超详细)

    今天统计价格变化规律的时候找到的一个很好的文档,很详细 一.简介 Ø FusionCharts 是InfoSoft Global 公司的一个产品,InfoSoft Global 公司是专业的Flash ...

  6. MySQL相关

    1.进入安装目录 cd E:\ZYXDocument\Software\mariadb-10.0.20-win32\bin 2.安装mysql服务将E:\ZYXDocument\Software\ma ...

  7. Android 图片压缩、照片选择、裁剪,上传、一整套图片解决方案

    1.Android一整套图片解决方案 http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650820998&idx=1& ...

  8. iOS 数字滚动 类似于老 - 虎- 机的效果

    效果图 具体实现代码如下 ZCWScrollNumView.h文件 #import <UIKit/UIKit.h> typedef enum { ZCWScrollNumAnimation ...

  9. CocoaPods 导入第三方库头文件自动补齐

    使用了一段时间CocoaPods来管理Objective-c的类库,方便了不少.但是有一个小问题,当我在xcode输入import关键字的时候,没有自动联想补齐代码的功能,需要手工敲全了文件名,难以适 ...

  10. iOS中的round/ceil/floorf函数略解

    extern float ceilf(float); extern double ceil(double); extern long double ceill(long double); extern ...