Welcome 微信登录

首页 / 脚本样式 / JavaScript

谈谈JavaScript中的函数与闭包

谈谈JavaScript中的函数与闭包

闭包这东西,说难也难,说不难也不难,下面我就以自己的理解来说一下闭包一、闭包的解释说明 对于函数式语言来说,函数可以保存内部的数据状态。对于像C#这种编译型命令式语言来说,由于代码总是在代码段中执行,而代码段是只读的,因此函数中的数据只能是静态数据。函数内部的局部变量存放在栈上,在函数执行结束以后,所占用的栈被释放,因此局部变量是不能保存的。Javascript采用词法作用域,函数的执行依赖于变量作用域,这个作用域是在定义函数时确定的。因此Javascri...
深入了解javascript中的prototype与继承

深入了解javascript中的prototype与继承

通常来说,javascript中的对象就是一个指向prototype的指针和一个自身的属性列表。javascript创建对象时采用了写时复制的理念。只有构造器才具有prototype属性,原型链继承就是创建一个新的指针,指向构造器的prototype属性。prototype属性之所以特别,是因为javascript时读取属性时的遍历机制决定的。本质上它就是一个普通的指针。构造器包括: 1.Object2.Function3.Array4.Date5.Str...
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN

关于jQuery $.isNumeric vs. $.isNaN vs. isNaN

在jQuery中,有几种方式可以判断一个对象是否是数字,或者可否转换为数字。首先,jQuery.isNaN()在最新版本中已经被移除了(1.7之后),取而代之的是 jQuery.isNumeric ()。这并不奇怪,因为jQuery.isNaN() 同Javascript内置的isNaN()名字相同,但是语义却不完全相同,在一定意义上会造成歧义。 jQuery.isNumeric ()有着与其相似的功能,同时也解决了歧义问题。jQuery.isNumeri...
在Javascript中 声明时用"var"与不用"var"的区别

在Javascript中 声明时用"var"与不用"var"的区别

Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的。可以正常运行的代码并不代表是合适的代码。var num = 1;是在当前域中声明变量. 如果在方法中声明,则为局部变量(local variable);如果是在全局域中声明,则为全局变量。而 num = 1;事实上是对属性赋值操作。首先,它会尝试在当前作用域链(如在方法中声明,则当前作用域链代表全局作用域和方法局部作用域etc。。...
在jQuery中 关于json空对象筛选替换

在jQuery中 关于json空对象筛选替换

Requirement:一个json object,并且可能包含一些空值或者空字符串,在页面显示的时候希望遇到空值显示“N/A”,但是有一部分值是允许空值的。因此希望通过筛选将空值设为“N/A”.例如希望学生的“age”和“score”如果为空显示“N/A”,而“sex”或者“comment”为空则不做处理。复制代码 代码如下:var student = { "name" : "Guo", "sex" : "", "age" : "", "num ": 0...
jquery分页插件AmSetPager(自写)

jquery分页插件AmSetPager(自写)

第一次做的插件,早写好了,后来发现一个jquery插件模板,就拿过来套。名字叫jquery.boilerplate.js。我的理解不是很深,也不太理解太多效率问题。本来我是一个做asp.net开发的,可是公司好些个人包括美工没太会js啊。项目很多js改来改去搞得我都头大了。萌发了写插件的想法,于是照葫芦画瓢写啊,写插件的过程也学了js的面向对象。对js,还有一些效率问题有了更深了解。以前有个项目单个页面写过600多行的js文件。全是按功能面向过程写的。乱的...
利用百度地图JSAPI生成h7n9禽流感分布图实现代码

利用百度地图JSAPI生成h7n9禽流感分布图实现代码

下图为使用百度地图JSAPI生成的H7N9感染分布图示例,其中的数据来自新华网(4.8号),截图如下: 使用的功能列表如下: 1.自定义版权控件功能,即(1)对应的数据来源部分,代码如下: 复制代码 代码如下: var cr = new BMap.CopyrightControl({anchor: BMAP_ANCHOR_TOP_RIGHT}); map.addControl(cr); //添加版权控件 var bs = map.getBounds(); ...
js作用域及作用域链概念理解及使用

js作用域及作用域链概念理解及使用

(1)作用域一个变量的作用域(scope)是程序源代码中定义的这个变量的区域。1. 在JS中使用的是词法作用域(lexical scope)不在任何函数内声明的变量(函数内省略var的也算全局)称作全局变量(global scope)在函数内声明的变量具有函数作用域(function scope),属于局部变量局部变量优先级高于全局变量var name="one";function test(){ var name="two"; console.log(n...
Extjs优化(一)删除冗余代码提高运行速度

Extjs优化(一)删除冗余代码提高运行速度

Extjs 本身是一个加载慢的JS框架,这个需要程序员的多去优化,之前说过了JS的打包的优化 这次来写写怎么减少冗余代码,也是提高运行速度,包含了1、删除代码通用2、提交表单通用3、初始化Gird通用化 本次只写 删除代码优化 先贴出代码 复制代码 代码如下: /** * 获取个GridPanel的选择的记录 */ function $getGdSelectedIds(grid, idName) { var selRs = grid.getSelectio...
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度

ANT 压缩(去掉空格/注释)JS文件可提高js运行速度

1、说明在使用extjs 的时候,运行起来比较卡,特别是运行数据和js过多的时候,就会出现卡死的情况,或者等待时间比较长。 在解决这个有很多优化方法,今天来说其中一种,那就是在Ant脚本打包的时候,把js中空格、注释去掉、以及合并,合并今天不说了,还未实现这个,在研究中 2、首先,需要准备二个 .jar 文件,分别是 YUIAnt.jar 和 yuicompressor-2.4.x.jar 。 3、俩个文件的附件 下载地址 4、build.xml文件如下 ...
<< 631 632 633 634 635 636 637 638 639 640 >>