作用域

JavaScript基础

放肆的年华 提交于 2019-11-25 22:56:53
一 JavaScript 简介 1 JavaScript基本介绍 1 JavaScript 简称JS,是一种动态的弱类型脚本解释型语言,和HTML,CSS并成为三大WEB核心技术,得到了几乎所有主流浏览器的支持 2 JavaScript 历史 1994年,网景Netscape公司成立并发布了Netscape navigator浏览器,占据了很大的时长份额,网景意识到WEB需要动态,需要一种技术来实现 1995年9月网景浏览器2发布测试版本发布了livescript,随即在12月的测试版就更名为JavaScript,同时期,微软推出IE并支持JScript,VBScript。 1997年,网景,微软,SUN,borland公司和其他组织在ECMA确定了ECMAscript语言标准,JS则是ECMAscript的标准实现之一。 由于IE的捆绑销售行为,网景的单一浏览器时长萎缩,从1990年的90%下降到2006年的1%,1999年网景被AOL收购,收购不就,netspace公开了浏览器代码,并创建了Mozilla组织,Mozilla组织使用Gelo引擎重写浏览器,当然Mozilla将Geko引擎发布了Firefox浏览器 2003年5月,网景被解散 AOL于2007年宣布停止支持Netscape浏览器 3 网景的技术 HTTP cookie ,解决HTTP无状态 JavaScript

面试知识-js

烈酒焚心 提交于 2019-11-25 22:09:02
1.函数声明和变量声明的提升;函数声明会被提升到普通变量之前。变量的声明被看作两部分,第一个是编译阶段的任务,第二个是执行阶段的任务。 2.作用域分为两部分:1.函数作用域,2块级作用域。 3. 来源: https://www.cnblogs.com/xiao-peng-ji/p/11930605.html

JS三座大山再学习(二、作用域和闭包)

隐身守侯 提交于 2019-11-25 21:13:56
原文地址 作用域 JS中有两种作用域:全局作用域|局部作用域 栗子1 console.log(name); //undefined var name = '波妞'; var like = '宗介' console.log(name); //波妞 function fun(){ console.log(name); //波妞 console.log(eat) //ReferenceError: eat is not defined (function(){ console.log(like) //宗介 var eat = '肉' })() } fun(); name定义在全局,在全局可以访问到,所以 (2) 打印能够正确打印; 在函数fun中,如果没有定义name属性,那么会到它的父作用域去找,所以 (3) 也能正确打印。 内部环境可以通过作用域链访问所有外部环境,但外部环境不能访问内部环境的任何变量和函数。类似 单向透明 ,这就是作用域链,所以 (4) 不行而 (5) 可以。 那么问题来了,为什么第一个打印是"undefined",而不是"ReferenceError: name is not defined"。原理简单的说就是JS的 变量提升 变量提升: JS在解析代码时,会将所有的声明提前到所在作用域的最前面 栗子2 console.log(name); //undefined

python中的函数作用域

旧街凉风 提交于 2019-11-25 19:13:33
1.作用域的介绍:# 也叫名称空间 全局名称空间:创建的储存"变量名与值的关系"的空间叫做全局名称空间 # 局部名称空间:在函数的运行中开辟出来的空间叫做局部名称空间 #并非单指函数,例如在模块中,在类中的简单赋值操作都是局部作用域 内置名称空间:内置名称空间中存放了python解释器为我们储存的的函数,例如len(),print(),list()...都是python为我们创建好的内置函数。 python中的作用域分4中情况: * L : local,局部作用域,函数中定义的变量 * E : enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的(闭包常见) * G : globa,全局变量,是模块级别定义的变量 * B : bulit-in,系统固定模块里的变量,就是内置空间定义的 int(),print(),list() 加载变量的优先级顺序依次是:python内置作用域>当前模块中的全局(文件从上而下读取)>外层作用域>局部作用域 搜索变量的优先级顺序依次是:作用域局部>外层作用域>当前模块中的全局>python内置作用域,也就是LEJB local 和 enciosing 是相对的,enclosing 变量相对上层来说也是 local 内置作用域 : x = int(2.9)# int就是内置作用域。(bulit-in)