宝哥软件园

JS页面获取会话值、范围和结束研究注释

编辑:宝哥软件园 来源:互联网 时间:2021-08-19

本文给出了一个例子来描述JS页面如何获取会话值、范围和闭包。分享给大家参考,如下:

Javascript获取session的值:

var name=' $ { sessiscope。变量名“{ 0 }”;请注意,您需要使用“”来封闭El表达式,否则您将无法获取数据。

JSP获取会话的值:

可以直接${sessionScope。变量名},它在标签中是相同的。

JSP获取URL的值:

var name=' %=request . GetParameter(' name ')% ';//请记住:“”不能添加到“”中表达式“%=%”的末尾;不会,而且只能写一句话。var id=$ { param . id };//有同样的效果,可以在JS类库的jQuery语法中使用。四个范围中,每个范围的取值方法相似,方法和技术一致。

以下是关于范围和链的一些注释:

范围:它指的是对某些变量和方法具有访问权限的代码空间。在JS中,范围是在函数中维护的。它表示变量或函数工作的区域,并引用它们执行的上下文,即上下文执行环境。Javascript只有两个作用域:全局作用域和局部作用域。局部范围由函数区分。

变量作用域

在JavaScript中,全局变量的作用域很简单,它的作用域是全局的,在代码中处处都有定义。但是,函数的参数和局部变量只在函数体中定义。此外,局部变量比同名的全局变量具有更高的优先级,也就是说,当局部变量与全局变量同名时,局部变量将覆盖全局变量(如以下示例)。

var num=1;//声明一个全局变量函数func(){ var num=2;//声明一个局部变量返回num} console . log(num);//输出:1 console . log(func());//输出:2注意:声明局部变量时必须使用var,否则解释器会将该变量视为全局对象窗口的属性。关于变量的详细说明地址:对本地javascript学习中js变量的全面理解

功能范围

在JavaScript中,变量的作用域与C、Java等编程语言并不相似。它在变量声明的代码段之外是不可见的。我们通常称之为块级作用域。但是,在JavaScript中,我们使用函数作用域(变量是在声明它们的函数体和嵌套在这个函数体中的任何函数体时定义的)。(如下例所示)

func(){ console . log(num);//输出:未定义,不是错误,因为变量num在整个函数体中有一个已定义的var num=1;//声明num在整个函数体func中定义了console . log(num);//输出:1 } func();//调用func函数注意:JavaScript的函数作用域是指函数中声明的所有变量在函数体中总是可见的,即在变量在函数体中声明之前是可用的。

作为属性的变量:

当声明一个全局变量时,它实际上定义了全局对象窗口的一个属性。

var num=1;//声明整个变量num malert(window . num)//输出:1声明的全局变量实际上声明了一个window对象的属性范围链

在JavaScript中,函数也是对象。事实上,JavaScript中的一切都是对象。像其他对象一样,函数对象具有可以通过代码访问的属性和一系列只能由JavaScript引擎访问的内部属性。内部属性之一是[[范围]],它包含创建函数的范围内的一组对象。这个集合被称为函数的作用域链,它决定了函数可以访问哪些数据。

当一个函数被创建时,它实际上保存了一个作用域链,并且该作用域链在创建该函数的作用域中填充了可访问的数据对象。例如,定义以下函数:

func(){ var num=1;alert(num);} func();创建func函数时,其作用域链将填充一个全局对象,该对象包含所有全局变量,如下图所示(注意:图中只举例说明了部分变量):

函数add的作用域将在执行过程中使用。例如,执行以下代码:

执行此函数时,将创建一个名为“执行上下文”(有人称之为运行环境)的内部对象,该对象定义了函数执行时的环境。每个运行时上下文都有自己的标识符解析范围链。创建运行时上下文时,其范围链被初始化为当前运行函数的[[范围]]中包含的对象。

这些值按照它们在函数中出现的顺序复制到运行时上下文的范围链中。它们一起组成了一个新的对象,叫做‘激活对象’,包含了函数的所有局部变量、命名参数、参数集和这个,然后这个对象会被推到作用域链的前面。当运行时上下文被销毁时,活动对象将被销毁。下图显示了新的范围链:

闭包学习笔记:

闭包:我在js中的理解是将外部变量引用到函数内部,形成一个完全封闭的函数体;当在定义内部函数的范围之外引用内部函数时,会创建内部函数的闭包。如果内部函数引用了位于外部函数中的变量,这些变量在调用外部函数后不会在内存中释放,因为闭包需要它们。

因此,从本质上讲,闭包是连接一个函数内部和外部的桥梁。

用途:闭包可以读取函数外的变量,并始终将变量的值保存在内存中。

使用闭包时要注意:

1)由于闭包会将函数中的变量保存在内存中,这样会消耗大量的内存,所以我们不应该滥用闭包,否则会造成网页的性能问题,从而可能导致IE中的内存泄漏。解决方法是在退出函数之前删除所有未使用的局部变量。

2)闭包将在父函数之外,并改变父函数内部变量的值。因此,如果将父函数用作对象,将闭包用作其公共方法,将内部变量用作其私有值,则必须注意不要随意更改父函数的内部变量的值。

更多对JavaScript相关内容感兴趣的读者可以查看本网站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、0103010

希望本文对JavaScript编程有所帮助。

更多资讯
游戏推荐
更多+