java内存区域和内存溢出异常 划分内存: java 虚拟机在执行 java 程序时将内存划分为 5 个部分。线程私有的有成员计数器、虚拟机栈、本地方法栈,线程共享的有方法区、堆。 程序计数器储存字节码行号,此区域未规定任何内存溢出异常。虚拟机栈储存栈帧,用于java 方法的运行。本地方法栈用于 n ...
分类:
编程语言 时间:
2018-09-02 02:13:29
阅读次数:
161
命名空间: 概念: 实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。 其实就是为了解决函数,变量冲突而提出的。命名空间可以包含以下几个内容:(花括号内不仅可以包括变量,而且还可以包括以下类型) ...
分类:
编程语言 时间:
2018-05-02 16:04:11
阅读次数:
232
在浏览器端 js 里面,为了解决各模块变量冲突等问题,往往借助于 js 的闭包把左右模块相关的代码都包装在一个匿名函数里。而 Nodejs 编写模块相当的自由,开发者只需要关注 require,exports,module 等几个变量就足够,而为了保持模块的可读性,很推荐把不同功能的代码块都写成独立 ...
分类:
其他好文 时间:
2018-02-02 14:07:45
阅读次数:
153
一、立即执行函数 IIFE 立即执行函数的集中表现形式: 立即执行函数的特点: 二、JS 全局污染 为什么会造成全局污染? JS 没有块级作用域,在函数外定义的变量,均为全局变量; 全局变量过多会削弱程序的灵活性,增大了模块之间的耦合度,多人协作开发会导致变量冲突,造成环境污染。 耦合度:即模块之间 ...
分类:
Web程序 时间:
2018-01-11 16:09:50
阅读次数:
348
预处理阶段涉及到变量和(以函数声明方式声明的)函数的声明的提前的原理,并且涉及到声明变量冲突时候的一些问题。需要与执行阶段进行一定的区分,进而加深理解。 1. 预处理阶段将变量保存在window域中,会扫描用var操作符声明的变量以及用函数声明的方式声明的函数指针。因此会产生变量提前和函数声明提前的 ...
分类:
Web程序 时间:
2017-11-24 15:14:09
阅读次数:
193
作用域 什么是作用域? 作用域就是你的代码在运行时,各个变量、函数和对象的可访问性。换句话说,作用域决定了你的代码里的变量能否被外界引用。 为什么需要作用域? 最小访问原则。作用域为代码提供了一个安全层级,不同作用域互不干扰。有利于追踪bug而且避免了同名变量冲突。 作用域有哪些? 全局作用域 (w ...
分类:
编程语言 时间:
2017-06-13 22:50:51
阅读次数:
285
JavaScript 是弱类型的语言,所以编译器不能检测出类型错误。 JavaScript 依赖于全局变量来进行链接。所有编译单元的所有顶级变量被撮合到一个被称为全局对象(the global object)的公共命名空间中。这是一件糟糕的事情,会导致全局变量冲突! 创建和运行JavaScript代 ...
分类:
编程语言 时间:
2017-05-21 12:47:34
阅读次数:
150
JavaScript 开发规范 JavaScript 开发规范 本篇主要介绍JS的命名规范、注释规范以及框架开发的一些问题。 目录 1. 命名规范:介绍变量、函数、常量、构造函数、类的成员等等的命名规范 2. 注释规范:介绍单行注释、多行注释以及函数注释 3. 框架开发:介绍全局变量冲突、单全局变量 ...
分类:
编程语言 时间:
2017-05-05 10:39:18
阅读次数:
324
javaScript 可以随意定义保存所有应用资源的全局变量。但全局变量可以削弱程序灵活性,增大了模块之间的耦合性。在多人协作时,如果定义过多的全局变量 有可能造成全局变量冲突,也就是全局变量污染问题,以下是两种解决办法 一.定义全局变量命名空间只创建一个全局变量,并定义该变量为当前应用容器,把其他 ...
分类:
Web程序 时间:
2017-04-30 17:15:28
阅读次数:
208
优势:隐式函数(自调函数)里面的参数不会与其它框架的全局变量冲突。 js中常常定义一个函数用做临时的命名空间,在这个命名空间内定义的变量都不会污染到全局命名空间(防止局部变量与全局变量冲突) 普通写法: function mymodule(){ //模块代码 } mymodule(); 匿名自调函数 ...
分类:
其他好文 时间:
2017-03-05 23:32:08
阅读次数:
194