文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Web前端:JavaScript中的var与作用域

lzzyok小精灵

lzzyok小精灵

2024-04-23 22:58

关注

  作用域(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函数中,对象的作用域为他所在的最近的一对花括号内。在后花括号处析构函数被调用;全局的对象的作用域为声明之后的整个文件,析构函数在最后被调用。另外,临时产生的对象在使用完后立即会被析构。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     436人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     201人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     163人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     242人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     68人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯