【Python全栈-JavaScript】JavaScript变量的作用域
2020-12-13 02:44
标签:作用域 rip 定义变量 center pytho pre 原因 前缀 使用 1.当在script中定义变量,在当前script中的定义前调用是undefined,没有定义该变量时调用报错。原因是在内存中开辟了该变量的存储位置,(当执行script时将所有定义的变量名先存到栈中) 当代码解释到该语句时才会将值存在栈中,没有执行之前调用该变量就是undefined,如果没有定义就不会在内存中开辟存储位置,因此就会报错。 2.如果在上一个script中调用下面的script的变量时,这时候不但没有值,而且没有开辟存储空间。因此,在上一个script中调用下面的变量永远都是报错的。 3.一旦定义变量完成后,在后面的script中都是可以任意调用,因为这些变量都是全局变量。 【Python全栈-JavaScript】JavaScript变量的作用域 标签:作用域 rip 定义变量 center pytho pre 原因 前缀 使用 原文地址:https://www.cnblogs.com/XJT2018/p/11051159.htmlJavaScript变量的作用域全局变量
全局变量VS 局部变量
/*全局变量 就是在script标签下直接使用var定义的变量,
全局变量可以应用于所有的代码中调用获取.范围非常大
局部变量 就是在函数中使用var定义的变量,仅用于当前函数的执行范围内
低耦合(减少耦合度)*/
function fn1() {
// 这里使用var定义的变量是有作用域的,他的范围仅限于该函数内部
// 函数运行完成后,函数内定义的变量将会自动销毁
var c=10; //局部变量
c+=3;
console.log(c);
//函数中修改全局变量后,全局变量就完成了修改,外面调用时,也是修改后的
xx+=10;
}
fn1(); //xx=11
fn1(); //xx=21
console.log(xx,"______"); //21
全局变量和局部变量的重名
//全局变量和局部变量的重名
var s1=10;
function fn2() {
/*
(局部变量和全局变量重名,在函数中局部会覆盖全局)
* 如果在函数中定义了某个局部变量名,那么在该函数中所有这个变量都是局部变量
* 不能通过直接使用变量名的方法调用到外部的全局变量了
* */
var s1=20;
s1+=20; //40
window.s1+=10; //如果全局变量的名称在函数中和局部变量名相同,想要调用全局变量时,加上window前缀
console.log(‘全局变量s1--->‘,window[‘s1‘]); //全局变量也可以这样调用
console.log(s1); //局部变量 40
}
fn2();
console.log(s1); //全局变量s1 10
var s2=10;
function fn3() {
//console.log(s2);//undefined,因为在函数中一旦第一局部变量,该函数中所有位置都是局部变量
s2+=10;
console.log(s2);//NaN,undefined+10
var s2=20;
}
fn3();
文章标题:【Python全栈-JavaScript】JavaScript变量的作用域
文章链接:http://soscw.com/essay/26210.html