作用域

jsp九大内置对象和四大作用域

筅森魡賤 提交于 2019-12-02 14:29:51
什么叫内置对象? 内置对象(又叫隐含对象,jsp有9个内置对象):不需要预先声明就可以在脚本代码和表达式中 直接使用 。 1. request对象 代表的是来自客户端(一般是浏览器)的请求,例如我们在FORM表单中填写的信息等,是最常用的对象。客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。作用域为request(用户请求期)。 常用方法: 1 object getAttribute(String name) 返回指定属性的属性值   2 Enumeration getAttributeNames() 返回所有可用属性名的枚举   3 String getCharacterEncoding() 返回字符编码方式   4 int getContentLength() 返回请求体的长度(以字节数)   5 String getContentType() 得到请求体的MIME类型   6 ServletInputStream getInputStream() 得到请求体中一行的二进制流   7 String getParameter(String name) 返回name指定参数的参数值   8 Enumeration getParameterNames() 返回可用参数名的枚举   9

JavaScript闭包

﹥>﹥吖頭↗ 提交于 2019-12-02 13:06:44
一、闭包的作用 JavaScript 中闭包是一个很难理解的概念,也是衡量 JavaScript 功力的重要 标准。JavaScript 语法中的独特特性也通过闭包淋漓尽致的体现了出来。 在学习闭包的过程中,很多同学最大的困惑其实并不是语法本身,而是看 着闭包的语法不知道它是干什么用的。难道闭包仅仅是一项供奉在象牙塔中供学 术研究者膜拜的高冷课题吗? 其实并不是这样,闭包的本质是将一个函数中某些变量的作用域延伸到函 数外部的技术。所有需要突破作用域链,在函数外部访问函数内部变量值的场合 都可以使用闭包。具体的例子我们看过语法后再讲述。 二、作用域链 1. 作用域 在 JavaScript 中,变量也可以分为全局变量和局部变量。 全局变量 直接在 script 标签内声明的变量就是全局变量 var global = 'Hello I am Global'; console.log("global="+global); // global=Hello I am Global 局部变量 在函数中声明的变量是局部变量 function myMethod() { var localVariable = "Hello I am Local"; console.log("localVariable=" + localVariable); // :localVariable=Hello I am

javascript闭包详解

谁说胖子不能爱 提交于 2019-12-02 13:00:23
全局作用域 所有浏览器都支持 window 对象,它表示浏览器窗口,JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。所以,全局变量是 window 对象的属性,全局函数是 window 对象的方法,甚至 HTML DOM 的 document 也是 window 对象的属性之一。 全局变量是JavaScript里生命周期(一个变量多长时间内保持一定的值)最长的变量,其将跨越整个程序,可以被程序中的任何函数方法访问。 在全局下声明的变量都会在window对象下,都在全局作用域中,我们可以通过window对象访问,也可以直接访问。 1 var name = "jeri"; 2 console.log(window.name); // 输出:jeri 3 console.log(name); // 输出:jeri 在JS中任何位置,没有使用var关键字声明的变量也都是全局变量。 1 function fun() { 2 name = "jeri"; 3 alert(name); 4 } 5 6 console.log(name); // 输出:jeri 全局变量存在于整个函数的生命周期中,然而其在全局范围内很容易被篡改,我们在使用全局变量时一定要小心,尽量不要使用全局变量。在函数内部声明变量没有使用var也会产生全局变量,会为我们造成一些混乱

js-闭包

馋奶兔 提交于 2019-12-02 12:55:14
文章目录 闭包 闭包使用场景 1.函数作为返回值 2.函数作为参数 for循环和闭包的关系 如何解决 闭包的实际使用 1.闭包封装变量,收敛权限 2.闭包解决递归调用 闭包的坑 1.引用的变量可能会发生变化 2.this指向问题 3.内存泄露问题 闭包 闭包指的是:能够访问另一个函数作用域的变量的函数 。清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量。 function outer ( ) { var a = '变量1' var inner = function ( ) { console . info ( a ) } return inner // inner 就是一个闭包函数,因为他能够访问到outer函数的作用域 } JS没有块级作用域,只有全局作用域和局部作用域(函数作用域)。 JS中的作用域链,内部的作用域可以访问到外部作用域中的变量和方法,而外部作用域不能访问内部作用域的变量和方法。 当前作用域没有此变量或方法,会向外部作用域寻找变量或方法。 闭包使用场景 1.函数作为返回值 function f ( ) { var a = 100 ; return function ( ) { console . log ( a ) ; } } var fn = f ( ) ; var a = 200 ; fn ( ) ; // 输出100 调用fn函数

js变量var与let的区别

谁都会走 提交于 2019-12-02 12:07:22
1.作用域 通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。 for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined //计数器i只在for循环体内有效,在循环体外引用就会报错 2. 变量提升现象 : 浏览器在运行代码之前会进行预解析,首先解析函数声明,定义变量,解析完之后再对函数、变量进行运行、赋值等。 不论var声明的变量处于当前作用域的第几行,都会提升到作用域的头部。 var 声明的变量会被提升到作用域的顶部并初始化为undefined,而let声明的变量在作用域的顶部未被初始化 // var 的情况 console.log(foo); // 输出undefined var foo = 2; //相当于 var foo; //声明且初始化为undefined console.log(foo); foo=2; // let 的情况 console.log(bar); // 报错ReferenceError let bar = 2; //相当于在第一行先声明bar但没有初始化,直到赋值时才初始化 但是直接用let声明变量不赋值是会打印undefined,还是初始化了 let a; alert(a);

JavaScript面试题(转)

前提是你 提交于 2019-12-02 12:02:06
JS相关问题 数组去重 function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ if(temp.indexOf(array[i]) == -1){ temp.push(array[i]); } } return temp; } var aa = [1,2,2,4,9,6,7,5,2,3,5,6,5]; console.log(aa) console.log(uniq(aa)) 1、谈一谈JavaScript作用域链 当执行一段JavaScript代码(全局代码或函数)时,JavaScript引擎会创建一个作用域又称为执行上下文(Execution Context),在页面加载后会首先创建一个全局的作用域,然后每执行一个函数,会建立一个对应的作用域,从而形成一条作用域链。每个作用域都有一条对应的作用域链,链头是全局作用域,链尾是当前函数作用域。 作用域链的作用是用于解析标识符,当函数被创建时(不是执行),会将this,arguments,命名参数和该函数中所有局部变量添加到该当前作用域中,当JavaScript需要查找变量X的时候(这个过程称为变量解析),它首先会从作用域链中的链尾也就是当前作用域进行查找是否有X属性,如果没有找到就顺着作用域链继续查找,直到查找到链头

闭包+函数+作用域

我的梦境 提交于 2019-12-02 11:00:18
闭包是一个概念 指有权访问另一个函数作用域中的变量的函数 要理解闭包就必须要了解作用域链 函数创建 调用 执行完毕 函数不过是一段可以在特定作用域执行代码的特殊对象 后台的每个执行环境都有一个表示变量的对象--变量对象。全部变量对象始终都存在 而像compare()函数这样的局部环境的变量对象,则只在函数执行的过程中存在 在创建compare()函数的时候,会创建一个预先包括全局变量对象的作用域链,这个作用域链被保存在内部的【【scope】】属性中 创建函数的时候======= 预先创建一个作用域链 调用compare()函数的时候,会为函数创建一个执行环境,然后通过复制函数的【【scope】】属性中的对象构建起执行环境的作用域链。 此后,又有一个活动对象(在此作为变量对象使用)被创建并被推入执行韩晶作用域链的前端。对于这个例子中的conpare()函数的执行环境而言, 其作用域链中包含两个变量对象:本地活动对象和全局变量对象。显然,作用域链本质上是一个指向变量对象的指针列表,它只引用但不包含变量对象 调用函数的时候======= 创建执行环境及相应的作用域链,使用arguments和其他命名的参数的值来初始化函数的活动对象 函数执行完毕后======= 局部活动对象就会被销毁,内存中仅保存全局作用域 来源: https://www.cnblogs.com/-constructor

JavaScript代码的时空

元气小坏坏 提交于 2019-12-02 10:51:49
一、作用域 (一)、在JavaScript里的全局环境就是一个对象,这个对象就是JavaScript运行环境的根;对于浏览器中的JavaScript来说,这个根对象就是window对象(非浏览器宿主程序中可能不叫window),对于全局的JavaScript语句来说,window对象就相当于当前作用域。 案例: var yourName = "yuyu";myName ="bobo"; alert(myName +"like"+yourName); ChangeNames(); //调用改名函数 function ChangeNames() { alert("Your old name is " + yourName); //输出:Your old name is undefined alert("My old name is" + myName); //my old name is bobo var yourName = "王金凤"; myName = "liswen"; alert(myName + " like" + yourName); //liswen like王金凤 }; alert(myName + " like" + yourName); //liswen likeyuyu 注:1、用“var”修饰的yourName标识符在函数内外是两个东西;外面的“yuyu

局部变量的作用域

ぐ巨炮叔叔 提交于 2019-12-02 06:15:24
问题 :这里的TP、FP、Score在不同的函数内部使用了同样的变量命名是否允许? 代码: def metrics_precision(x1,x2): TP=np.sum((x1==1)&(x2==1)) FP=np.sum((x1==0)&(x2==1)) score=TP/TP+FP return score def metrics_recall(x1,x2): TP=np.sum((x1==1)&(x2==1)) FN=np.sum((x1==1)&(x2==0)) score=TP/TP+FN return score 知识点:Python的局部变量 1 局部变量是在函数内部定义的变量,只能在定义函数的内部使用 2 函数执行结束后,函数内部的局部变量会被系统收回 3 不同函数可以定义相同名字的局部变量,但是各用个的互不影响 来源: https://www.cnblogs.com/athenawang/p/11734025.html

Python中函数与作用域的问题

丶灬走出姿态 提交于 2019-12-02 05:51:23
Python遇到错误就停止执行 在分支结构,循环结构中定义的是全局变量 变量作用域查找顺序:局部作用域---嵌套作用域---全局作用域---内置作用域(找到有域的变量就停止) 闭包函数与匿名函数的区别 全局变量global variable:任何位置都可以访问(一般只可访问,不可修改。如果函数引用修改要用global关键字) 局部变量local variable:只在函数内部生效,函数外不可以访问! 嵌套变量nonlocal variable:比如,第一函数中嵌套第二个函数,第一函数中定义的局部变量在第二个函数视作嵌套变量,是可以被第二函数访问 内置作用域:属于Python内置的标识符,比如input,print,int等 ###################### 注意:不同的作用域的同一变量是属于不同的变量的,只是同名而已! #################################### 减少全局变量的使用就意味着我们应该尽量让变量的作用域在函数的内部,但是如果我们希望将一个局部变量的生命周期延长,使其在定义它的函 数调用结束后依然可以使用它的值,这时候就需要使用闭包 ######################### 使用global关键字来指示函数中的变量a来自于全局作用域,也有定义a为全局变量的意思(例如,如果全局作用域中没有a变量,那么在函数内部使