javascript笔记整理(变量作用域)
变量的作用域(作用域:指的就是一段代码的作用范围)
一、变量的作用域
1.全局变量(在代码中任何地方都能够访问得到的变量,拥有全局的作用域)
A.最外层函数外面定义的变量
var a=1;
function aa(){
alert(a);
};
aa(); 结果:1
B.没有定义直接赋值的变量,拥有全局属性
var a;
function aa(){
a=1;
};
aa();
alert(a); 结果:1
2.局部变量(只能在固定的代码片段(函数片段中)中访问得到)----可以提高程序的逻辑性和安全性,减少名字的冲突
A.函数内部定义的变量,就是局部变量
var a=1;
function aa(){
var a=2;
alert(a);
};
aa(); 结果:2
alert(a); 结果:1
B.参数也是局部变量。
function aa(b){
var b=2;
alert(b);
};
aa(b); 结果:2
alert(b); 结果:报错
二、javascript预解析顺序
a、<script></script>块依次解析。
b、解析代码运行的环境。
c、对标识符(关键字)(var function )进行解析,解析到相应的环境下
alert(a);var a=1; 结果:undefined
var a=1;alert(a); 结果:1
function aa(){alert(1)};aa(); 结果:1
aa();function aa(){alert(1)}; 结果:1
d、如果还有<script></script>块再按照上面的步骤依次解析
三、名词解释
A.环境
1.宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序。如:web浏览器,一些桌面应用系统等。即由web浏览器或是这些桌面应用系统早就的环境即宿主环境。
2.执行环境:执行环境定义了变量或函数有权访问的其他数据决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中。
var a=1;
function aa(){
var a=2;
alert(a);
bb();
function bb(){
alert(a);
}
}
aa();
alert(a); 弹出结果:2-----2-----1
执行的环境决定了变量和函数的访问权限
B.作用域(一段代码的作用范围)
C.作用域链(在一个执行环境中有权访问的变量和函数能够有序有机的进行访问)
javascript笔记整理(变量作用域)的更多相关文章
- javascript中的变量作用域以及变量提升
在javascript中, 理解变量的作用域以及变量提升是非常有必要的.这个看起来是否很简单,但其实并不是你想的那样,还要一些重要的细节你需要理解. 变量作用域 “一个变量的作用域表示这个变量存在的上 ...
- JavaScript基础——理解变量作用域
一旦你开始在JavaScript应用程序中添加条件.函数和循环,就需要理解变量作用域.变量作用域规定了如何确定正在执行的代码行上的一个特定变量名的值. JavaScript允许你既定义全局版本又定义局 ...
- javascript中的变量作用域以及变量提升详细介绍
在javascript中, 理解变量的作用域以及变量提升是非常有必要的.这个看起来是否很简单,但其实并不是你想的那样,还要一些重要的细节你需要理解变量作用域 “一个变量的作用域表示这个变量存在的上下文 ...
- 【JavaScript 从零开始】变量作用域
变量作用域 一个变量的作用域(scope)是程序源代码中定义这个变量的区域. 全局变量拥有全局作用域,在JavaScript代码中的任何地方都是有定义的.然而在函数内声明的变量只是函数体内有定义. 他 ...
- JavaScript学习系列2一JavaScript中的变量作用域
在写这篇文章之前,再次提醒一下 JavaScript 是大小写敏感的语言 // 'test', 'Test', 'TeSt' , 'TEST' 是4个不同的变量名 JavaScript中的变量,最重要 ...
- python3学习笔记12(变量作用域)
变量作用域 参考http://www.runoob.com/python3/python3-function.html Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量 ...
- Python 3 学习笔记之——变量作用域、模块和包
1. 变量作用域 Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的.变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称.Python 的作用域一共 ...
- javascript笔记整理(概述,变量,数据类型)
A.概述 1.输出工具: document.write()---可以是html alert()---字符串 prompt(text,defaultText) text---可选.要在对话框中显示的纯文 ...
- 《JavaScript 高级程序设计》读书笔记四 变量 作用域 内存
一 变量(基本类型和引用类型) a.基本类型保存值,保存在栈内存,引用类型保存指针,保存在堆内存: b.所有函数的参数都是按值进行传递的,不管参数是何种类型: c.检测类型 typeof ...
随机推荐
- MYSQL 好文章集锦
比较细致的讲解MySQL数据库的数据结构以及实现原理 MySQL索引背后的数据结构及算法原理 MySQL的InnoDB索引原理详解 MySQL索引原理及慢查询优化 持续更新,快乐学习.
- background-position 个人理解
background-position这里先说像素 百分比比较复杂background-position:xxpx xxpx 这里第一个值指的是x轴坐标 第二个值是y轴坐标这里使用的坐标系和数学 ...
- IE11中[if lt IE 9]兼容性问题
IE11不支持<!--[if lt IE 9]> <![endif]--> ,蛋疼的IE!!!
- Datamatrix码
DataMatrix二维条码原名Datacode,由美国国际资料公司(International Data Matrix, 简称ID Matrix)於1989年发明.DataMatrix二维条码是一种 ...
- Qt中addStretch的有趣应用
今天在使用addStretch,布局的时候,发现addStretch竟然是可以平均分配的,有意思.比如: QVBoxLayout *buttonLayout = new QVBoxLayout; bu ...
- F#实现的单链表(函数式的思想)
// 在 http://fsharp.net 上了解有关 F# 的更多信息 // 请参阅“F# 教程”项目以获取更多帮助. type list = | Nil | Cons of int * list ...
- PHP - 目录、文件操作
目录操作: <?php /** * Read Directory. * Just read the top-level directory. * @param string $path dire ...
- ThinkPHP - 关联模型 - 一对多
使用之前,先引入文件夹,否则相应的功能不能实现. 如果对thinkPHP不精通,使用或开发的时候,最好直接使用完成版本的ThinkPHP. 关系模型定义: <?php /** * 继承自 Rel ...
- G - 小希的迷宫(并查集)
1今天准备复习三道以前做过的题呢,结果只看了一道,也因为交题的时候没把测试时候为了方便而改的数字改过来而wrong answer,浪费了好长时间,啊啊啊~~ 不过这道题应该是掌握了,嘿嘿…… Desc ...
- USACO Barn Repair 【贪心算法】
这到题目的题意不太好理解= = 看来还是英语太弱了 实际上题目给了你M, S, C 分别代表最多不超过M 块木板, S代表牛棚总数,C代表接下来有C个牛所在牛棚的标号 然后求的是如何安排方案,可以使得 ...