Welcome 微信登录

首页 / 脚本样式 / JavaScript

JavaScript代码编写中各种各样的坑和填坑方法

JavaScript代码编写中各种各样的坑和填坑方法

坑”这个字,在此的意思是“陷阱”。由于 JavaScript “弱语言”的性质,使得其在使用过程中异常的宽松灵活,但也极为容易“中招”。这些坑往往隐藏着,所以必须擦亮双眼,才能在学习与应用 JS 的道路上走的一帆风顺。一、全局变量JavaScript 通过函数管理作用域。在函数内部声明的变量只在这个函数内部,函数外面不可用。另一方面,全局变量就是在任何函数外面声明的或是未声明直接简单使用的。“未声明直接简单使用”,指的是不用 var 关键字来声明变量。这个...
Javascript的严格模式strict mode详细介绍

Javascript的严格模式strict mode详细介绍

“严格模式”(strict mode)是ECMA-262 Edition 5定义的新语法,表示要用严格的Javascript语法来执行,有一些过去惯用的写法就会抛出SyntaxError异常,例如:1.变量前没有用var宣告2.使用八进制语法:var n = 023和var s = "47"3.使用with语句4.使用delete删除一个变量名(而不是属性名):delete myVariable5.使用eval或arguments作为变量名或函数名6.使用...
Javascript中的delete操作符详细介绍

Javascript中的delete操作符详细介绍

一、变量说到javascript中的delete操作符,还是首先要搞清楚javascript中的变量和属性之间的关系。javascript中,变量和对象属性关系非常微妙,甚至可以很多时候会被等同起来,因为 javascript 在执行脚本之前会创建一个global对象,在浏览器中就是window对象,所有的全局变量都是这个global对象的属性,执行函数时也会创建一个activation对象,所有的局部变量都是这个activation对象的属性。这些可以大...
JavaScript也谈内存优化

JavaScript也谈内存优化

相对C/C++ 而言,我们所用的JavaScript 在内存这一方面的处理已经让我们在开发中更注重业务逻辑的编写。但是随着业务的不断复杂化,单页面应用、移动HTML5 应用和Node.js 程序等等的发展,JavaScript 中的内存问题所导致的卡顿、内存溢出等现象也变得不再陌生。这篇文章将从JavaScript 的语言层面进行内存的使用和优化的探讨。从大家熟悉或略有耳闻的方面,到大家大多数时候不会注意到的地方,我们一一进行剖析。1. 语言层面的内存管理...
JavaScript中对循环语句的优化技巧深入探讨

JavaScript中对循环语句的优化技巧深入探讨

循环是所有编程语言中最为重要的机制之一,几乎任何拥有实际意义的计算机程序(排序、查询等)都里不开循环。 而循环也正是程序优化中非常让人头疼的一环,我们往往需要不断去优化程序的复杂度,却因循环而纠结在时间复杂度和空间复杂度之间的抉择。 在 javascript 中,有3种原生循环,for () {}, while () {}和do {} while (),其中最为常用的要数for () {}。 然而for正是 javascript 工程师们在优化程序时最容易...
Node.js中对通用模块的封装方法

Node.js中对通用模块的封装方法

在Node.js中对模块载入和执行进行了包装,使得模块文件中的变量在一个闭包中,不会污染全局变量,和他人冲突。前端模块通常是我们开发人员为了避免和他人冲突才把模块代码放置在一个闭包中。如何封装Node.js和前端通用的模块,我们可以参考Underscore.js 实现,他就是一个Node.js和前端通用的功能函数模块,查看代码:复制代码 代码如下:// Create a safe reference to the Underscore object for...
Javascript动态引用CSS文件的2种方法介绍

Javascript动态引用CSS文件的2种方法介绍

最近做一个项目,需要javascript动态插入样式,结果以前的方法失效了!查了2个小时的原因竟然是自己手贱,这个最后再说!javascript插入样式在前端开发中应用比较广泛,特别是在修改前端表现和页面换肤的时候。最近做的这个任务是用户在别人的站点上点击一个按钮,就会在别的站点页面下插入一个脚本,执行,这其中包含了样式的插入。一般情况下javascript动态插入样式有两种,一种页面中引入外部样式,在<head>中使用<link>...
使用GruntJS构建Web程序之合并压缩篇

使用GruntJS构建Web程序之合并压缩篇

有如下步骤:1.新建项目Bejs2.新建文件package.json3.新建文件Gruntfile.js4.命令行执行grunt任务一、新建项目Bejs源码放在src下,该目录有两个子目录asset和js。js下放selector.js和ajax.js,这在上一篇已经讲了如何合并压缩它们。这篇只关注asset目录,asset目录下放了一些图片和css文件。一会会把两个css资源reset.css和style.css合并,压缩到dest/asset目录。一个...
javascript中加号(+)操作符的一些神奇作用

javascript中加号(+)操作符的一些神奇作用

javascript是一门神奇的语言,这没神奇的语言中有一个神奇的加操作符。常用的加操作符我们可以用来做:1.加法运算,例如:alert(1+2); ==>32.字符串连接,例如:alert(“a”+”b”);==>”ab”高级一点的还有“+=”,也是做以上两种操作的。昨天在javascript丛林群里问了问题:怎么把“2000-09-11 19:22”这个日期格式字符串转换成毫秒数?斩梦人天天马上回答我: +new Date("2000-09...
seaJs的模块定义和模块加载浅析

seaJs的模块定义和模块加载浅析

SeaJS 是由玉伯开发的一个遵循 CommonJS 规范的模块加载框架,可用来轻松愉悦地加载任意 JavaScript 模块和css模块样式。SeaJS非常小巧,小巧在于压缩和gzip后体积只有4K,而且接口和方法也非常少,SeaJS 就两个核心:模块定义和 模块的加载及依赖关系。SeaJS非常强大,SeaJS可以加载任意 JavaScript 模块和css模块样式,SeaJS会保证你在使用一个模块时,已经将所依赖的其他模块载入到脚本运行环境中。玉伯的说...
javascript中的return和闭包函数浅析

javascript中的return和闭包函数浅析

高手绕道!这跟闭包本身没什么大的关系,也不知道怎么取标题,随便凑了个数,望见谅!今天一个刚学js的朋友给了我一段代码问为什么方法不执行,代码如下:复制代码 代码如下:function makefunc(x) {return function (){return x;}}alert(makefunc(0));其实不是不执行,只是朋友的意思这里alert出来的应该是“0”,而不是function (){return x;}。不是脚本写错了,只是没搞懂retur...
IE中图片的onload事件无效问题和解决方法

IE中图片的onload事件无效问题和解决方法

在web开发在获取图片宽高是很正常的事情,图片在加载完成前是获取不到图片的宽高的,在加载完成后才可以获取图片本身的宽高,例如:复制代码 代码如下:var img = new Image();img.src = "loading.gif";img.onload = function(){alert ( img.width );};OK?这段代码看着没什么问题,但在ie中会有一个bug,就是ie第一次打开的时候没问题,第二次使用这个方法就悲剧了,ie没反应了,...
<< 871 872 873 874 875 876 877 878 879 880 >>