JS变量作用域浅析
来源:互联网 发布:数据库教程视频 编辑:程序博客网 时间:2024/06/14 15:39
一、在申明变量是凡是没有var关键字,而直接赋值的变量均为全局变量
1、function test() {
a = 30;
var b = 20;
}
test();
console.log("a="+a); //这里很明显,a为全局变量
console.log("b="+b);//b为局部变量,故在函数test外调用是,提示未定义
二、函数域优先于全局域, 函数内部的变量取代全局同名变量
var t = "bb";
function test() {
//执行t的时候,它会先找作用域链对象,由于它定义在函数内部,所以这个函数就是它的作用域链的第一个对象
//而在这个对象里又有t的定义,所以t就是局部变量了,它替换了全局变量t
//t只是此时有定义,但并没有赋值,赋值在下一行,所以这里输出了undefined
alert(t);
var t = "aa";
alert(t);
}
test();
三、JS没有块级作用域
if (true) { //在块中定义了一个变量,它的作用域链的第一个对象就是全局对象window var tmp = 0; } //tmp的作用域链的第一个对象就是全局对象window,而上面又有全局对象中相关的var语句,因此输出0 alert(tmp);
function test(){
for(var i = 0 ; i < 3 ; i++){
//i=0,1,2,最后执行到i=3时退出循环
}
console.log(i);//3
}
test();
四、with语句
说到作用域链,不得不说with语句。with语句主要用来临时扩展作用域链,将语句中的对象添加到作用域的头部。
看下面代码
with语句结束后,作用域链恢复正常。
阅读全文
0 0
- JS变量作用域浅析
- js学习,变量提升(hositing)与作用域(Scoping)浅析
- javascript 变量作用域浅析
- js 变量作用域
- js变量作用域
- js变量作用域
- js变量作用域
- js 变量作用域
- JS变量作用域
- 实例浅析javascript变量作用域
- php变量作用域的浅析
- js变量的作用域
- 变量的作用域js
- JS。某变量作用域。
- js的变量作用域
- js变量作用域链
- js变量的作用域
- js 变量的作用域
- 计划(日志)
- PHP高级
- ajax的四种实现方式介绍
- Python数据库操作、Python DB API、数据库连接对象connection、数据库游标对象cursor
- redis Window下安装以及使用
- JS变量作用域浅析
- mac selenium+python 安装
- TensorFlow学习---tf.nn.max_pool实现池化操作
- 机器学习--欠拟合与过拟合
- 启动服务器时出现异常:SpringObjectFactory.java:209:-1
- TensorFlow no attribute 'is_abstract'
- js的indexOf()方法的具体用法
- 原创:微信小程序java实现AES解密并获取unionId
- IOS Tableview使用xib自定义cell