javascript基础教程_Web前端基础教程:JavaScript中的var与作用域

2c547d585e5aaa33e44ff69b267bc44d.png

Web前端开发基础教程,前端开发知识点

作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效的,而限定这个名字的可用性的代码范围就是这个名字的作用域。

作用域的使用提高了程序逻辑的局部性,增强程序的可靠性,减少名字冲突。

Javascript中没有块级作用域,“块级作用域”中声明的变量将被添加到当前的执行环境中

  if(true){

  varcolor="blue";

  }

  console.log(color);//"blue"

  functiontest(){

  if(true){

  varcolor="blue";//(当前执行环境为函数test的局部作用域,函数外部无法访问,内部可以访问)

  }

  console.log("blue");//"blue"

  functioninner(){

  console.log(color);//"blue"

  }

  inner();

  }

  test();

  console.log(color);//ReferenceError:colorisnotdefined

在JavaScript中,由for语句创建的变量,即使在for循环执行结束后,也依旧会存在于循环外部的执行环境中。

  for(vari=0;i<10;i++){

  varcolor="blue";

  }

  console.log(i);//10

  console.log(color);//"blue"

使用var声明的变量会自动被添加到最接近的环境中。在函数内部,最接近的环境就是函数的局部环境;在with语句中,最接近的环境是函数环境。

如果初始化变量时没有使用var声明,该变量会自动被添加到全局环境。

  functionadd(num1,num2){

  varsum=num1+num2;//用var声明

  returnsum;

  }

  console.log(add(10,20));//30

  console.log(sum);//ReferenceError:sumisnotdefined

  functionadd(num1,num2){

  sum=num1+num2;//没有使用var声明

  returnsum;

  }

  console.log(add(10,20));//30

  console.log(sum);//30

如果局部环境中存在着同名标识符,就不会使用位于父环境中的标识符。

  varcolor="blue";

  functiongetColor(){

  console.log(color);//undefined(变量提升)

  varcolor="red";

  console.log(color);//red

  console.log(window.color);//blue

  returncolor;

  }

  console.log('return:',getColor());//return:red

  console.log(color);//blue

对于对象而言(其他也是一样的),在main函数中,对象的作用域为他所在的最近的一对花括号内。在后花括号处析构函数被调用;全局的对象的作用域为声明之后的整个文件,析构函数在最后被调用。另外,临时产生的对象在使用完后立即会被析构。

以上是酷仔今日整理的“Web前端基础教程:JavaScript中的var与作用域”一文,希望对正在学习Web前端基础或者对前端开发感兴趣的同学提供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值