javascript作用域
来源:互联网 发布:环信java服务端demo 编辑:程序博客网 时间:2024/06/16 19:38
JS作用域:
在JS中,函数嵌套是非常普遍的,在函数嵌套中对变量是如何寻找的?
答:首先在函数内寻找,找不到则往外层寻找,直到全局(window)区域
例子:
function t1() {
var d;
function t2() {
d = 5;
e = 6;
}
t2();
}
t1();
console.log(e);//6
console.log(d);//d is not defined错误
console.log(window.d);//undefine
/*
上面的输出结果解析:
代码运行到t2中的d=5时,系统则寻找变量d,找到上面的d,将5赋值给d变量,然后运行到e=6时,系统寻找e变量,但是在全局中找不到,则执行window.e=6赋值操作,console.log(e)输出的是全局的变量,而console.log(d)输出的是局部变量,所以报错
*/
/*
注意:
以window.xxx引用全局变量,寻找不到,作为某个属性不存在,返回undefine
直接以xxx引用某变量,寻找不到,则是报xx is not defined
*/
var str1 = 'global';
function t1() {
console.log(str1);
console.log(str2);
var str2 = 'local';
}
t1(); //global undefined
/*
解析:
js代码自上而下执行
但是js代码在整体运行分:
词法分析期 运行期
自上而下执行之前,先有一个词法分析过程
此上面的结果为例:
第一步:分析t1函数
t1{
var str2 //分析出t1内有str2局部变量,注意此时函数未执行,因此str2的值为undefined
}
第二步:执行t1函数
console.log(str1); //global
console.log(str2); //undefined
str2 = 'local'; //此时,str2的值为local
*/
- javascript的作用域
- javascript中的作用域
- JavaScript中的作用域
- JavaScript 变量作用域
- Javascript作用域浅析
- javascript的作用域
- JavaScript中的作用域
- javascript 变量作用域
- Javascript作用域
- javascript的作用域
- Javascript作用域原理
- Javascript作用域浅析
- Javascript作用域
- javascript变量作用域
- javascript的作用域
- 理解Javascript作用域
- JavaScript中的作用域
- Javascript作用域原理
- ubuntu设置分辨率
- [Java Web]Struts2基础总结(二)
- Visual Studio控制台程序输出窗口一闪而过的解决方法
- mysql varchar max
- 【ACdream】Andrew Stankevich's Contest (3)
- javascript作用域
- 联想教育应用使用说明(7.6版本)——第3章 联想教育应用的日常维护与使用
- oracle触发器
- view变化监听器ViewTreeObserver介绍
- C++STRING类常用函数
- 分享交流促进进步
- socket的TCP的三次握手&&四次挥手
- 我与C++
- 网络字节序之间的转换函数详解