博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVASCRIPPT作用域-函数作用域和声明提前【摘自《Javascript 权威指南》】
阅读量:6679 次
发布时间:2019-06-25

本文共 693 字,大约阅读时间需要 2 分钟。

     一个变量的作用域是程序源代码中定义这个变量的区域。全局变量拥有全局作用域,在JavaScript代码中的任何地方都是有定义的。

然而在函数内声明的变量只在函数体内有定义。他们是局部变量,作用域是局部性的。函数参数也是局部变量,他们只在体内有定义。

     在函数体内,局部变量的优先级高于同名的全局变量。如果在函数内声明的一个局部变量或函数参数中带有的变量和全局变量重名,

全局就被局部变量所覆盖。

   eg:

     var a="aaaa";

     (function (){

          var a="bbb";
          console.log(a);

     })();

     =>   输出 bbbb;

    

   一般的编程语言中,花括号内的每一段代码都具有各自的作用域,在而且变量在声明它们的代码段之外是不可见的。我们称之为块级作用域。

  但在JavaScript中,没有块级作用域。取而代之地使用了函数作用域:变量在声明他们的函数以及这个函数的嵌套的任何函数体内都是可

  eg:

   (function test(O){

      var i=0;

      if(typeof O =="object"){

          var j=0;

           for(var k=0; k<10;k++){
                console.log(k); => 0~9

           }

           console.log(k); =>10

      } 

           console.log(j);=>  0

      })({});

 由上面例子 可知 函数体内声明的变量在函数体内始终是可见的。  这也意味着变量在声明之前 甚至已经可用了,这有个非正式的称为 函数变量声明提前

 

 

 

转载于:https://www.cnblogs.com/MKOne/p/4658454.html

你可能感兴趣的文章
443. String Compression - Easy
查看>>
Unity中那些事半功倍的好插件
查看>>
最全的Markdown语法
查看>>
npm i 的几种方式区别
查看>>
Eclipse界面简介
查看>>
iOS5中的UUID
查看>>
(转载)XML Tutorial for iOS: How To Read and Write XML Documents with GDataXML
查看>>
指定的网络文件夹目前是以其他用户名和密码进行映射的。要用其他用户名和密码进行连接,首先请断开所有现有的连接到网络共享的映射...
查看>>
Linux学习4
查看>>
PythonBasic
查看>>
systemc 初学笔记(1)
查看>>
poj 3259 Wormholes
查看>>
Apache CXFjar包目录(转)
查看>>
NewCoder_13_E 通知小弟[缩点]
查看>>
Elasticsearch 空值过滤
查看>>
spring、springboot、springcloud的区别
查看>>
文字对齐之text-align总结
查看>>
css+js+html基础知识总结
查看>>
作为软件工程师,你必须知道的20个常识
查看>>
ActiveMQ入门实例
查看>>