作用域

作用域链,闭包

点点圈 提交于 2019-12-04 23:18:37
函数在执行的前一刻会产生AO AO 执行顺序: 1.形参和变量申明 2.实参赋值给形参 3.寻找函数声明 4.执行函数 执行完成后会销毁 function test() { a=1; function a(){ } var a=2; return a; } console.log(test()); AO={ a:undefined -> a() -> 1 (执行)-> 2(执行)} 来源: https://www.cnblogs.com/yiyi24/p/11887819.html

函数的返回值与作用域

三世轮回 提交于 2019-12-04 22:05:20
函数外部的代码要想获取函数的执行结果,就可以在函数里用return语句把结果返回 1 def stu_register(name, age, course='PY' ,country='CN'): 2 print("----注册学生信息------") 3 print("姓名:", name) 4 print("age:", age) 5 print("国籍:", country) 6 print("课程:", course) 7 if age > 22: 8 return False 9 else: 10 return True 11 registriation_status = stu_register("王山炮",22,course="PY全栈开发",country='JP') 12 if registriation_status: 13 print("注册成功") 14 else: 15 print("too old to be a student.") 注意 函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束 如果未在函数中指定return,那这个函数的返回值为None 全局变量与局部变量 1 name = "Alex Li" #这个就是全局变量,在程序内部是一直能够调用的 2 def change

go语言入门(4)函数

女生的网名这么多〃 提交于 2019-12-04 20:24:57
1,函数的定义格式 函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。 Go 语言函数定义格式如下 func FuncName(/*参数列表*/) (o1 type1, o2 type2/*返回类型*/) { //函数体 return v1, v2 //返回多个值 } 函数定义说明: 1)func:函数由关键字 func 开始声明 2)FuncName:函数名称,根据约定, 函数名首字母小写即为private,大写即为public 3)参数列表:函数可以有0个或多个参数,参数格式为:变量名 类型,如果有多个参数通过逗号分隔,不支持默认参数 4)返回类型: 上面返回值声明了两个变量名o1和o2(命名返回参数),这个不是必须,可以只有类型没有变量名 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号 如果没有返回值,那么就直接省略最后的返回信息 如果有返回值, 那么必须在函数的内部添加return语句 2,自定义函数 2.1,无参无返回值 func Test() { //无参无返回值函数定义 fmt.Println("this is a test func") } func main() { Test() //无参无返回值函数调用 } 2.2,有参无返回值 1)普通参数列表 func Test01

与或非实习day21

北城以北 提交于 2019-12-04 20:04:11
今天是Es6的一天; 1.let和const命令   作用域,命名规则,一般不要乱重复;变量提升;要注意的就是这三个地方   用法还是一样的,只是说应该更注意作用域和变量的声明   1.函数作用域(var)和块级作用域(let,const)就是{} if for 这些{}都是块级作用域   2.var是可重复定义的,let 和 const 是不可以的。 然后let是可以重新赋值的,而const一般声明常量的。所以不能重新赋值的   3.引用类型的值,看来还得重新看一下数据类型了 来源: https://www.cnblogs.com/Py-king/p/11880948.html

作用域——C++11(四)

笑着哭i 提交于 2019-12-04 19:45:42
1、局部作用域: 声明在函数或lambda内的名字称为局部变量,采用“块”的概念来限定边界,即以花括号{}来限定。 2、类作用域: 若名字定义于类中,且位于函数、lambda或enum class之外,称为类成员名字。 3、名字空间作用域: 若名字定义于一个名字空间中,且位于类、函数、lambda或enum class之外,称为名字空间成员名字。 4、全局名字空间: 声明在所有结构之外的名字称为全局名字。 来源: https://www.cnblogs.com/share-ideas/p/11880001.html

常用的英文词汇

筅森魡賤 提交于 2019-12-04 19:16:38
  自己总结一些常用的英文吧,以前也没有去总结,慢慢的总结,这样才能在技术这条路上越走越远,刚开始总结的肯定不多,这些单词就是象征的自己能走多远,加油!!! variable       变量              lexical scoping      词法作用域 primitive type    原始类型            global variable       全局变量 object type     对象类型            function scope      函数作用域 property       属性              numerical literal      数字直接量 constructor     构造函数            overflow         溢出 garbage collection  垃圾回收机制          underflow        下溢 mutable       可变              infinity           无穷大 immutable      不可变             escape sequence    转义字符 untyped      无类型              RegExp()         构造函数 declare      声明 

web中四大作用域对象,及作用范围

一个人想着一个人 提交于 2019-12-04 19:11:25
page(当前jsp有效) request(一次请求) session(一次会话) application(整个web应用) page域指的是pageContext. request域指的是HttpServletRequest session 域指的是HTTPSession application 域指的是ServletContext,他们都是域对象,原因就是他们都内置了map集合,都有setAttribute getAttribute方法。而且他们的name都是String类型,而value都是Object类型。 他们都有自己固定的生命周期和作用域 page:jsp页面被执行,生命周期开始,jsp页面执行完毕,生命周期结束。 request:用户发送一个请求,开始,服务器返回响应,请求结束,生命周期结束。 session:用户打开浏览器访问,创建session(开始),session超时或被声明失效,该对象生命周期结束。 application:web应用加载的时候创建。Web应用被移除或服务器关闭,对象销毁 来源: https://www.cnblogs.com/4756yaoyexingjun/p/11879397.html

01-学习vue前的准备工作

别说谁变了你拦得住时间么 提交于 2019-12-04 18:11:15
es6语法:let和const es6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效 <!DOCYTPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport content=width=device-width,initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script type="text/javascript"> //var 声明的是全局作用域 //let 声明的变量是块级作用域 { let a =12 } alert(a) console.log(a) </script> </body> </html> 上面代码在代码块之中,分别用 let 和 var 声明了两个变量。然后在代码块之外调用这两个变量,结果 let 声明的变量报错, var 声明的变量返回了正确的值。这表明, let 声明的变量只在它所在的代码块有效。 2 .for循环相信大家都玩过。下面这种现象扭曲了我们块级作用域的思想!如果将var改成let就可以了! <!DOCYTPE

前端知识集锦1

雨燕双飞 提交于 2019-12-04 18:00:50
原文链接: 征服前端面试 ,仅供学习使用 前端知识集锦2 1. JavaScript 1.1 原型 我们创建的每一个函数,都可以有一个prototype属性,该属性指向一个对象。这个对象,就是原型。 当我们在创建对象时,可以根据自己的需求,选择性的将一些属性和方法通过prototype属性,挂载在原型对象上。而每一个new出来的实例,都有一个proto属性,该属性指向构造函数的原型对象,通过这个属性,让实例对象也能够访问原型对象上的方法。因此,当所有的实例都能够通过proto访问到原型对象时,原型对象的方法与属性就变成了共有方法与属性。 // 声明构造函数 function Person(name, age) { this.name = name; this.age = age; } // 通过prototye属性,将方法挂载到原型对象上 Person.prototype.getName = function() { return this.name; } var p1 = new Person('tim', 10); var p2 = new Person('jak', 22); console.log(p1.getName === p2.getName); // true 通过图示我们可以看出,构造函数的prototype与所有实例对象的proto都指向原型对象

javascript高级(1)

不打扰是莪最后的温柔 提交于 2019-12-04 17:57:52
typora-copy-images-to: media 第02阶段.前端基本功.前端基础.js进阶 基础语法 学习目标 了解 回顾js基础 构造函数创建对象存在的问题 重点 知道函数有原型对象 构造函数,原型对象和实例三者的关系 原型链 会给内置的对象添加自定义的方法 会使用更简单的原型使用方式 ​ 1. 回顾 1.1 作用域: 1.1.1 全局作用域 整个js执行的环境就是一个全局作用域 1.1.2 局部作用域 es5规范中: 只有函数才能构成一个局部作用域 1.1.3 作用域链 将js执行时变量查找的方式,以链式形式表示出来 var num = 0; function fn(){ var num1; num1 = 1; console.log(num1); function fnSon(){ var num2 = 2; console.log(2) } } 将上面的代码用链式的形式展示出来 1.2 词法作用域规则 词法作用域又叫静态作用域. 作用域是在代码书写完毕之后就形成了,与代码执行无关 内部作用域可以访问外部作用域的变量,但是外部不可以访问内部的 函数的形参就相当于在当前函数的作用域中申明了这个变量 访问变量时,先在自己的作用域中查找,如果没有则沿着作用域链往上找,直到全局.如果全局也没有就报错 给变量赋值之前,要先找变量.查找变量也是沿着作用域链查找,直到全局