作用域

作用域、复用

白昼怎懂夜的黑 提交于 2020-02-06 19:54:58
var a=1; //全局作用域 function b{ var b=2; //作用域在函数内 } 琐碎知识点,以防忘记 对象变量,对象方法 var d={} d.a=1; d.b=function(s){ return s+"ok"; } console.log(d.b(d.a)); 代码复用,通过函数执行返回一个类 var fh=function () { var obj={}; obj.a="ok"; obj.ff=function (s) { return s+"886"; }; return obj; }; var obj2=fh(); console.log(obj2.ff(obj2.a)); 简化一下上面代码,刚才以为我记错了JS呢 var fh=function () { return{ a:"ok", ff:function (s) { return s+"886" } } }; var obj2=fh(); console.log(obj2.ff(obj2.a)); 附带自己闲的蛋疼小实验 var a=1; function f(s) { var p=1; return p+s; } console.log(f()); 当p的值为字符串的时候函数返回值为字符串+underfined,如果是数值则返回NaN 来源: https://www.cnblogs.com

Python中作用域的特别之处

扶醉桌前 提交于 2020-02-06 01:56:27
def a(): a = [] def aappend(): a.append(1) aappend() print a def b(): b = 1 def bchange(): b += 1 # 等于b = b + 1 bchange() print b a() b() 输出结果如下: [1] Traceback (most recent call last): File "E:\Python-2.7.5\py\test.py", line 16, in <module> b() File "E:\Python-2.7.5\py\test.py", line 12, in b bchange() File "E:\Python-2.7.5\py\test.py", line 11, in bchange b += 1 UnboundLocalError: local variable 'b' referenced before assignment a函数输出正确,b函数报错说局部变量b在赋值前引用。 因为b函数中b被赋值(b += 1等价于b = b +1),b变成bchange中个一个局部变量,覆盖掉了b的外层作用域,所以找不到b的值。 而a函数中a是一个list,a.append()不属于对a赋值的操作,a的作用域依然在整个a函数中。 值得注意的是

Python随手笔记(四)

我们两清 提交于 2020-02-05 17:03:38
Python提供了一些内建函数,同时也支持自己定义的函数,每个函数就像一个程序里的小程序 4.1def语句和参数 def语句中可以加入一些参数放到括号之中,有个小例子: def hello ( a ) : print ( 'Hello, ' + a ) hello ( '吕世龙' ) 如果调用 len()函数,并向它传入像’Hello’这样的参数,函数调用就求值为整数 5。这是传入的字符串的长度。一般来说,函数调用求值的结果,称为函数的返回值。return 语句包含以下部分: return 关键字 函数应该返回的值或表达式 如果使用不带值的 return 语句(也就是只有 return 关键字本身),那么就返回 None。 4.2关键字参数和 print() 大多数参数是由它们在函数调用中的位置来识别的。例如,random.randint(1, 10) 与 random.randint(10, 1)不同。函数调用 random.randint(1, 10)将返回 1 到 10 之间的一个随机整数,因为第一个参数是范围的下界,第二个参数是范围的上界(而random.randint(10, 1)会导致错误)。 但还有一类关键字参数,是由函数调用时加在它们前面的关键字来识别的,例如,print()函数有可选的变元 end 和 sep,分别指定在参数末尾打印什么

JavaScript-作用域-预解析

那年仲夏 提交于 2020-02-05 08:58:55
<!DOCTYPE html> 作用域-预解析 变量的查找就是就近原则,去寻找var定义的变量,当就近没有找到的时候,就去查找外层 //--> //--> //--> //--> //--> 刷新评论 刷新页面 返回顶部 //--> //--> //--> //--> 来源: https://www.cnblogs.com/1666818961-lxj/p/7383965.html

js 作用域链

南楼画角 提交于 2020-02-04 06:51:37
作用域 :变量开始创建到被系统回收的过程; 全局 :在任意函数外创建的变量, 局部 :在任意函数内创建的变量, ES5 :只用函数能够生成局部作用域,其他结构不可以 作用域链 :现在当前作用域中查找,找到即执行,如果没有继续向上一次查找,找到即执行,如果找到全局中依然没有找到,报错,阻断程序运行。 var a = 20 ; function Myfun ( ) { a = 30 ; console . log ( a + 10 ) ; } function Myfun_two ( ) { a = 50 ; console . log ( a + 20 ) ; } console . log ( a ) ; //20 Myfun ( ) ; //40 console . log ( a ) ; //30 Myfun_two ( ) ; // 70 console . log ( a ) ; //50 变量提升 :如果使用了未声明的变量,正常情况会因找不到而报错,但是在使用下方出现了他的声明,会默认将他提升到使用之前,不包括值,先使用后声明,改变量会因变量提升可以找到,但是值为undefind; 存在意义:保证程序继续执行,只是失去了当前功能的值 //第一题 var a = "全局变量" ; function first ( ) { var a = "first" ; function

web前端----JavaScript的DOM(三)

柔情痞子 提交于 2020-02-04 00:32:14
一、JS中for循环遍历测试 for循环遍历有两种 第一种:是有条件的那种,例如 for(var i = 0;i<ele.length;i++){} 第二种:for (var i in li ){} 现在我们来说一下测试一下第二种(数组和obj的) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var arr = [11,22,33,44,55]; var obj = {'username':'zzz','agr':20}; //js中的这个类似字典的不叫字典,而是一个对象 for (var i in obj){ console.log(i); //拿到的是键 console.log(obj[i]) //值 } for (var j in arr){ console.log(j); //拿到索引 console.log(arr[j]) //拿到值 } </script> </body> </html> 测试for循环 二、获取value属性值 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>获取value值</title>

js之DOM对象三

吃可爱长大的小学妹 提交于 2020-02-03 23:14:07
js之DOM对象三 一、JS中for循环遍历测试 for循环遍历有两种 第一种:是有条件的那种,例如 for(var i = 0;i<ele.length;i++){} 第二种:for (var i in li ){} 现在我们来说一下测试一下第二种(数组和obj的) 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <script> 9 var arr = [11,22,33,44,55]; 10 var obj = {'username':'zzz','agr':20}; //js中的这个类似字典的不叫字典,而是一个对象 11 for (var i in obj){ 12 console.log(i); //拿到的是键 13 console.log(obj[i]) //值 14 } 15 for (var j in arr){ 16 console.log(j); //拿到索引 17 console.log(arr[j]) //拿到值 18 } 19 </script> 20 </body> 21 </html> 二、获取value属性值 1 <!DOCTYPE html> 2 <html lang=

前端之JS(五)

老子叫甜甜 提交于 2020-02-03 23:10:24
js的作用域 作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。 作用域 1. 全局作用域(Global Scope) 在代码中任何地方都能访问到的对象拥有全局作用域,一般来说一下几种情形拥有全局作用域: (1)最外层函数和在最外层函数外面定义的变量拥有全局作用域 var name="yuan"; function foo(){ var age=23; function inner(){ console.log(age); } inner(); } console.log(name); // yuan //console.log(age); // Uncaught ReferenceError: age is not defined foo(); // 23 inner(); // Uncaught ReferenceError: inner is not defined (2)所有末定义直接赋值的变量自动声明为拥有全局作用域,例如: var name="yuan"; function foo(){ age=23

前端之JavaScript:JS之DOM对象三

守給你的承諾、 提交于 2020-02-03 22:55:09
一、JS中for循环遍历测试 for循环遍历有两种 第一种:是有条件的那种,例如 for(var i = 0;i<ele.length;i++){} 第二种:for (var i in li ){} 现在我们来说一下测试一下第二种(数组和obj的) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var arr = [11,22,33,44,55]; var obj = {'username':'zzz','agr':20}; //js中的这个类似字典的不叫字典,而是一个对象 for (var i in obj){ console.log(i); //拿到的是键 console.log(obj[i]) //值 } for (var j in arr){ console.log(j); //拿到索引 console.log(arr[j]) //拿到值 } </script> </body> </html> 测试for循环 二、获取value属性值 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title

《ES6标准入门》学习笔记

送分小仙女□ 提交于 2020-02-03 12:15:24
嗯,之前之做项目大概了解一些,之后看Vue实战里讲一些,简历里写了这个,所以决定系统学习,第一次接触大佬阮一峰是讲Flex布局的一篇博文,感觉很好,居然把书开源,嗯,嘻嘻,真好,生活加油. 2020.2.01 电子档网址 : http://es6.ruanyifeng.com/ 嗯,最近看的书摘一句: 一切一切,凡已属于和能属于这个世界的一切,都无可避免得带有以主体为条件[的性质],并且也仅仅只是为主体而存在的.世界即是表象 。 -----------《作为意志和表象的世界》 第一章,ECMScript6简介: ECMAScript 6 (以下简称 ES6 )是 JavaScript 语言的下 代标准. ECMAScript JavaScript 的关系是,前者是后者的规格,后者是前者的 种实现(另 外的 ECMAScript 还有 JScript Action Script )。在日常场合,这两个词是可以互换。ECMA是国际标准化组织。 ES6即指5.1版本之后的javaScript版本,意指下一代的javaScript语言. Node 是 JavaScript 语言的服务器运行环境( ru ntime ),类比于java的JVM,它对 ES6 的支持 度更高。除了那些 默认打开的功能,还有 些语法功能也已经实现了,但是默认没有打开 ,使用 ' node --vs-options