作用域

PHP语法

吃可爱长大的小学妹 提交于 2019-12-06 11:33:47
PHP标记: PHP解析文件是以下面三种方式作为起始和结束标记: 1.<?php 代码 ?> 2.<? 代码 ?> 3.<script language="php"> 代码 </script> 多用第1种和第3种方式,它们之间的是需要解析的代码,这种解析方式可让PHP能被嵌入到不同文档中,而在起始和结束标记之外的代码会被PHP解析器忽略。 这里要注意的是:若是使用第1种方式,紧随"<?php"后面的必须是 空格\t ,或是 换行符\n ,或是 回车\r ,或是 空字符串\s ,而不能类似:<?php代码?>,否则会解析失败。 注释: 1.单行注释可使用 "//"或"#": <?php // 代码 ?> 或 <?php #代码 ?> 2.多行注释可使用起始/*和结束*/,这里注意注释在碰到第一个*/时就会结束,所以要确保不会嵌套 比如: <?php /* 代码; /*此处代码注释碰到第一个结束标记了*/ */ ?> 这是一个好的注释风格: <?php //====================================================================== // CATEGORY LARGE FONT //======================================================================

渲染Web视图

末鹿安然 提交于 2019-12-06 10:31:06
渲染Web视图 本章主要内容包括: 将数据模型渲染为HTML 使用JSP视图 1 理解视图解析 将控制器中请求处理的逻辑和视图中的渲染实现解耦是Spring MVC 的一个重要特性。如果控制器中的方法直接负责产生HTML的话,就很难在不影响请求处理逻辑的前提下,维护和更新视图。控制器方法和视图的实现会在模型内容上达成一致,这是两者的最大关联,除此之外,两者应该保持足够的距离。但是,如果控制器只通过逻辑视图来了解视图的话,那Spring该如何确定使用哪一个视图实现来渲染模型呢?这就是Spring视图解析器的任务了。 在之前的章节中,我们使用名为InternalResourceViewResolver的视图解析器。在它的配置中,为了得到视图的名字,会使用”/WEB-INF/views/”前缀和”.jsp”后缀,从而确定来渲染模型的JSP文件的物理位置。现在,我们回过头来看看视图解析器的基础知识以及Spring提供的其他视图解析器。 Spring MVC 定义了一个名为ViewResolver的接口,它大致如下所示: public interface ViewResolver { View resolveViewName(String viewName, Locale locale) throws Exception; } 当给resolveViewName(

《浏览器工作原理与实践》<11>this:从JavaScript执行上下文的视角讲清楚this

微笑、不失礼 提交于 2019-12-06 10:31:03
在上篇文章中,我们讲了词法作用域、作用域链以及闭包,接下来我们分析一下这段代码: var bar = { myName:"time.geekbang.com", printName: function () { console.log(myName) } } function foo() { let myName = "极客时间" return bar.printName } let myName = "极客邦" let _printName = foo() _printName() bar.printName() 在 printName 函数里面使用的变量 myName 是属于全局作用域下面的,所以 最终打印出来的值都是“极客邦” 。这是因为 JavaScript 语言的 作用域链是由词法作用域决定的 ,而 词法作用域是由代码结构来确定 的。 不过按照常理来说,调用bar.printName方法时,该方法内部的变量 myName 应该使用 bar 对象中的,因为它们是一个整体,大多数面向对象语言都是这样设计的,比如我用 C++ 改写了上面那段代码,如下所示: #include <iostream> using namespace std; class Bar{ public: char* myName; Bar(){ myName = "time.geekbang.com"; }

【工具】myeclipse常用的快捷键

徘徊边缘 提交于 2019-12-06 09:49:14
常用的快捷键 快捷键 功能 Ctrl+Shift+X 代码大写 Ctrl+Shift+Y 代码小写 Alt+Shift+S “source”快捷键 alt+shift+A 多列编辑 Ctrl+D 删除当前行 Ctrl+1 快速修复 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Q 定位到最后编辑的地方 Ctrl+L 定位在某行 Ctrl+M 最大化当前的Edit或View (再按则反之) Ctrl+T 快速显示当前类的继承结构 myeclipse中的所有快捷键列表 快捷键 功能 Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交互位置(同上) Alt+← 前一个编辑的页面 Alt+→ 下一个编辑的页面(当然是针对上面那条来说了) Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性 Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后) Shift+Ctrl+Enter 在当前行插入空行(原理同上条) Ctrl+Q 定位到最后编辑的地方 Ctrl+L 定位在某行

存储持续性、作用域和链接性

荒凉一梦 提交于 2019-12-06 08:50:31
存储持续性、作用域和链接性 c++中使用3中不同的方案存储数据 c++11中使用4中不同的方案存储数据。 这些方案的区别在于数据保留在内存中的时间。 自动存储持续性 在函数定义中声明的变量的存储持续性为自动的。2种 静态存储持续性 在函数定义外定义的变量和使用关键字static定义的变量的存储持续性为静态。他们在整个程序运行过程中都存在。3种 线程存储持续性c++11 多核处理器中很常见。如果变量是使用thread_local声明的,则其生命周期和所属线程一样长。 动态存储持续性 使用new运算符分配的内存将一直存在,直到使用delete运算符将其释放或程序终止为止。有时被称为自由存储或堆。 作用域和链接 作用域描述了名称在文件的多大范围可见。 作用域为局部的变量只能在定义它的代码块中用。 作用域为全局的变量在定义位置到文件结尾之间都可用。 自动变量为局部作用域。静态变量为全局作用域还是局部作用域取决于它是如何被定义的。 在函数原型作用域中使用的名称只在包含参数列表的括号内使用。 在类声明的成员的作用域为整个类。 在名称空间中的声明的变量的作用域为整个名称空间。全局作用域是名称空间作用域的特例。 c++函数的作用域为整个类或整个名称空间。但不能是局部。因为不能在代码块中定义函数。如果函数作用域为局部,则只对之间可见。不能被其他函数调用。 链接性描述了名称如何在不同单元间共享

作用域解析运算符

旧巷老猫 提交于 2019-12-06 08:39:23
作用域运算符“::” 一、(作用域 ):: 《作用域中的某个成员》 = 或 比较? 或者 ->给某个对象。 #if 0 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; int g_number = 100; void test01() { int g_number = 200; cout << g_number << endl; // 打印作用于 全局的变量 cout << ::g_number << endl; } class MyClass{ public: const static int a = 10; }; void test02(){ cout << MyClass::a << endl;//某个函数作用域的内的东西访问出来 /* 底层实现机制不清楚 */ } int main(){ test01(); system("pause"); return EXIT_SUCCESS; } #endif 来源: https://www.cnblogs.com/MyLoveLiJuan/p/11972912.html

js学习:函数

拈花ヽ惹草 提交于 2019-12-06 07:21:38
概述 函数的声明 JavaScript 有三种声明函数的方法 function 命令 function命令声明的代码区块,就是一个函数。function命令后面是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。 这叫做函数的声明(Function Declaration)。 function print(s) { console.log(s); } 函数表达式 除了用function命令声明函数,还可以采用变量赋值的写法。 var print = function(s) { console.log(s); }; 这种写法将一个匿名函数赋值给变量。这时,这个匿名函数又称函数表达式(Function Expression),因为赋值语句的等号右侧只能放表达式。 采用函数表达式声明函数时,function命令后面不带有函数名。如果加上函数名,该函数名只在函数体内部有效,在函数体外部无效。 var print = function x(){ console.log(typeof x); }; x // ReferenceError: x is not defined print() // function 上面代码在函数表达式中,加入了函数名x。这个x只在函数体内部可用,指代函数表达式本身,其他地方都不可用。这种写法的用处有两个,一是可以在函数体内部调用自身

2019年11月第五周前端问题汇总

自作多情 提交于 2019-12-06 06:22:10
2019-11-26 自执行函数 //一般来说,我们在使用函数时,通常会分这样几步 //1、定义一个函数 function func(){ console.log(1) } //2、定义一个变量接受func函数 或直接调用 var a = func(); //2、函数调用 a() //输出1 //自执行函数就是将上面综合,定义时直接调用 var b = function (i){ console.log(i) }(2) //输出2 //理论上来说,自执行的匿名函数可以写为 function(x){return x*x}(3),但是由于JavaScript的语法解析问题,这么写会报syntaxError错误,所以需要用括号把整个函数定义起来,即 (function (x){return x*x})(3) JavaScript代码执行顺序。 JavaScript的代码都是按照单线程执行的,即一段代码执行完成后才会开始下一段代码。 //例如:下面代码中,先执行for循环,执行到循环内部的定时函数时,因为时间设置为0,此时应该立即输出i的值。但是由于当前for循环未执行完毕,所以定时函数会留在循环函数执行完毕后再执行,此时i为4,所以会输出三个4 for(var i=1;i<=3;i++){ setTimeout(function(){ console.log(i); //输出:4,4,4

【前端性能优化】高性能JavaScript整理总结

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-06 05:27:41
高性能JavaScript整理总结 关于前端性能优化:首先想到的是 雅虎军规34条 然后最近看了《高性能JavaScript》 大概的把书中提到大部分知识梳理了下并加上部分个人理解 这本书有参考雅虎特别性能小组的研究成果,所以跟34 军规有很多相似之处 有不当之处请在评论区指正,感谢~ 约定 :很多单词语法都是简写比如doc指document,点点点代表不重要代码省略,码字不易(/双手合十) 1. 加载和执行 JavaScript是单线程,所以JavaScript的加载和执行是从上至下加载执行完一个再继续加载执行下一个文件,会阻塞页面资源的加载,所以一般情况下JavaScript文件放在body标签 内 底部,很多后端开发人员放在body标签外下面,这样做不好的地方有两处:1、不规范 2、 可能 会造成js获取不到页面元素而导致报错。而放在body标签内底部可以确保js执行前页面渲染完成  <body> js... //正确 </body> <!-----------------------分界线----------------------------> <body> </body> js... //错误 合并脚本,每个<script>标签初始化下载都会阻塞页面渲染,所以减少页面的<script>标签数量可以起到优化作用,内嵌脚本外链脚本通用,另外HTTP会带来的额外的性能消耗

Spring Bean((一)

北战南征 提交于 2019-12-06 03:20:32
Bean 定义 被称作 bean 的对象是构成应用程序的支柱也是由 Spring IoC 容器管理的。bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象。这些 bean 是由用容器提供的配置元数据创建的,例如,已经在先前章节看到的,在 XML 的表单中的 定义。 bean 定义包含称为 配置元数据 的信息,下述容器也需要知道配置元数据: 如何创建一个 bean bean 的生命周期的详细信息 bean 的依赖关系 上述所有的配置元数据转换成一组构成每个 bean 定义的下列属性: 属性 描述 class 这个属性是强制性的,并且指定用来创建 bean 的 bean 类。 name 这个属性指定唯一的 bean 标识符。在基于 XML 的配置元数据中,你可以使用 ID 和/或 name 属性来指定 bean 标识符。 scope 这个属性指定由特定的 bean 定义创建的对象的作用域,它将会在 bean 作用域的章节中进行讨论。 constructor-arg 它是用来注入依赖关系的,并会在接下来的章节中进行讨论。 properties 它是用来注入依赖关系的,并会在接下来的章节中进行讨论。 autowiring mode 它是用来注入依赖关系的,并会在接下来的章节中进行讨论。 lazy-initialization mode 延迟初始化的 bean 告诉