2016-05-30 函数与变量 作用域

1. 如何访问函数内的局部变量

 <script>
       //获取函数内部变量的两种方法
       function fn1(){
           var a=‘100000美金‘;
       }
       alert(a);//报错 a isNot undefine;

       //解决方法1: 通过把局部变量赋值给全局变量
       var str=‘‘;
       function fn1(){
           var a=‘100000美金‘;
           str=a;
       }
       fn1();//必须先调用函数,否则里面赋值不会自动执行
       alert(str);//‘100000美金‘

       //解决方式2 通过局部函数调用并传参给全局函数
       function fn2(){
           var a =‘妹子爱吃梅子,我爱吃妹汁‘;
           fn3(a);
       }
       function fn3(b){
           alert(b);
       }
       fn2();//妹子爱吃梅子,我爱吃妹汁
   </script>

  

2.乱七八糟的作用域

<script>    alert(a);//function a(){alert(4)}    var a=1;    alert(a);//1    function a(){//不执行,未被调用        alert(2);    }    var a=3;    alert(a);//3    function a(){//不执行,未被调用        alert(4);    }    alert(a);//3    //a();//等于3(); is not a function;</script>

<script>    alert("a:"+a);//3,script是个全局的域,上面a初始化了,后面的可以用,反之不可以

    var b=10;    function fn1(){//预解析 b为undefine        alert("b1"+b);//此处的b 与var b=1;中的b没有任何关系        var b=2;    }    fn1();//undefine;    alert("b2:"+b);//10

    var c=1;    function fn2(){        alert("c1:"+c);        c=2;    }    fn2();//1    alert("c2:"+c);//2

    var d=1;    function fn3(d){//预解析 b为undefine        alert("d1:"+d);        d=2;    }    fn3();//undefine    alert("d2:"+d);//1

    var e=1;    function fn4(e){//预解析 b为undefine        alert("e1:"+e);        e=2;    }    fn4(e);//1    alert("e2:"+e);//1</script>
时间: 2024-08-08 04:47:13

2016-05-30 函数与变量 作用域的相关文章

JavaScript基础之函数和变量作用域

函数:封装一项任务的步骤清单的代码段,再起一个名字 ( js中函数也是一个引用类型的对象,函数名其实也是引用函数对象的普通变量.) 函数对象:内存中专门存储一个函数定义的存储空间 函数定义的存储位置在window之外. 何时使用:一项任务可能反复使用时,就仅需要在函数中封装一次,反复调用函数即可. 如何声明函数: function 函数名([参数1,参数2,...]){ 步骤清单 return 返回值 } 参数:专门接受函数调用时,必要数据的变量 如何使用参数:在函数内,参数变量的使用和普通变量

python 函数及变量作用域及装饰器decorator @详解

一.函数及变量的作用 在python程序中,函数都会创建一个新的作用域,又称为命名空间,当函数遇到变量时,Python就会到该函数的命名空间来寻找变量,因为Python一切都是对象,而在命名空间中,都是以字典形式存在着,这些变量名,函数名都是索引,而值就是,对应的变量值和函数内存地址.在python中可以用globals()查看全局变量,locals()局部变量. >>> global_v = '全局变量' >>> def func(): ... local_v = '

JS函数、变量作用域

函数参数 函数的()中指定一个或多个形参(形式参数),多个形参之间用,号隔开,声明形参相当于在函数内部声明了对应的变量,但不赋值.在调用时在()中指定实参 ?调用时解析器不会检查实参类型.数量,实参可以是任意的数据类型. 函数返回值 使用return来设置函数的返回值,作为函数的执行结果来返回 return后可以跟任意类型的值 语法:return 值 function sum(a,b,c){ var d = a + b + c; return d; } var result = sum(1,2,

函数与变量作用域

全局变量 与 局部变量 与 闭包变量(介于两者之间的变量) global关键字:局部范围内更改全局变量(函数默认只能读取全局变量,不能修改) nonlocal关键字:嵌套函数中修改闭包变量(外层函数定义的变量相当于其语句块内的全局变量) 1 i=1 2 j=2 3 print('全局变量:i=',i,'j=',j) 4 5 def fun(): 6 global i,j #要想修改全局变量,需要先使用global关键字对其进行事先声明 7 i=2 8 j=3 9 10 fun() 11 prin

2016.05.30 周一 初学51单片机 第二天

现在对我来说,单片机的功能就是控制一串发光二极管发光或者熄灭...初学... 在对I/O口控制时需要用到 延时 for循环延时函数 void ytime() //声明ytime函数   延时原理单片机执行for语句需要一定的时间 { unsigned int i,n; //定义无符号型的int变量 i 和 n for(i=0;i<500) //数字大小决定延时长短 for(n=0;n<110;n++); // 同上 }

工作周记 - 第二周 (2016/05/30 - 2016/06/03)

上周的产品基本定型,唯独订单部分还是有待讨论,其余部分可以开展,由于一期版本是给app提供服务 所以本周工作主要是: 1.根据产品原型设计数据库,审核并定稿形成第一版数据库设计: er-studio数据库设计.表设计 mysql navicat 1.2.根据数据库设计进行模块划分,任务分配,协调人员调度 2.设计后台管理系统前端页面框架(主要前端工程师参与) 3.搭建主要后端框架,并且上传至SVN,配合前端框架形成基本的可参考的增删改查以及restful接口服务demo 技术选型及相关组件: S

JavaScript-4.2函数,变量作用域---ShinePans

<html> <head> <meta http-equiv="content-type" content="text/html;charset=GB2312"/> <title> 4.2 函数和变量作用域 </title> <!--脚本部分--> <script type="text/javascript"> var v1,v2; v1=10; v2=20; f

HTML代码中在两个匿名函数中使用同名变量出现bug而引起的变量作用域的思考

在学习HTML的时候,为了方便地对同一个css样式的不同值的效果进行对比,我做成了下面这个样子. 代码也是很典型的用于展示的格式(p元素的内容随便写的): 1 <head> 2 <style> 3 p{ 4 border: medium solid black; 5 padding: 5px; 6 margin: 5px; 7 text-justify:inter-word; 8 } 9 button{ 10 margin: 5px; 11 } 12 </style>

39 py函数作用域递归函数 变量作用域局部函数 使用lambda

第十课:函数作用域 // python 中的嵌套函数 在一个函数中再定义一个函数 # 小结 : # 函数作用域:因为:python是动态语言,定义变量的时候是不需要指定变量类型的,这样的话,我们在使用或者定义变量的时候作用域会分不清 # 如果在函数中定义一个变量,而且变量名和该函数上一级的作用域中的变量名相同 # 那么在该函数使用该变量时,就会使用局部变量 # 如果在函数中使用一个变量,但该变量在函数中并没有定义,那么会到该函数上一层的作用域去寻找该变量,如果还没有找到,会继续到上一层作用域去寻