随笔分类 - JavaScript
摘要:传统的异步解决方案采用回调函数和事件监听的方式,而这里主要记录两种异步编程的新方案: ES6的新语法Promise ES2017引入的async函数 Generator函数(略) Promise的含义 是异步变成的一种解决方案,属于ES6的语法。 简单的说,promise就是一个容器,里面包含着一个
阅读全文
摘要:1、空格 紧凑型: project.MyClass = function(arg1, arg2){ 松散型: for( i = 0; i 100){ return false; } return true;}错误:function isPercentage(val) { if(val >= 0){ if(val < 100){ return true; }else{ return false; } }else{ return false; }}9、全局变量 不要使用...
阅读全文
摘要:本文档整理大部分公认的、或者少有争议的JavaScript良好书写规范(Best Practice)。一些显而易见的常识就不再论述(比如要用对象支持识别判断,而不是浏览器识别判断;比如不要嵌套太深)。条目顺序按重要级粗略的从高到低排列。把外部JavaScript文件放在HTML底部我们的目标是相同的:为用户尽可能快地显示内容。当载入一个脚本文件的时候,HTML会停止解析,直到脚本载入完毕。因此,用户可能会长时间对着一个空白的屏幕,看上去什么都没有发生。如果你的JavaScript代码只是增加一些功能(比如按钮的点击动作),那么尽管大胆地把文件引用放在HTML底部吧(就在之前),你会看到明显的速
阅读全文
摘要:在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:JSON字符串:var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象:var str2 = { "name": "cxh", "sex": "man" };一、JSON字符串转换为JSON对象要使用上面的str1,必须使用下
阅读全文
摘要:学习目的:前后端数据交换思路:json数据格式是怎么样?后端各种语言怎么将自己内容转换成json格式的内容?前端怎么接收json数据?有几种方式?js中怎么将json数据转换成js中的数组,对象来使用?遇到问题:用ajax接收数据直接赋值给了变量,发现里面是一个数组。在php中不知道怎么传递数据?(或者说ajax的xmlhttp.responseText是怎么获取后端数据的?)php中把对象和数组转换成json数据格式的方法。学习过程:1.json知识普及从结构上看,所有的数据最终都可以分成三种类型:第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers
阅读全文
摘要:利用 ActionScript,可以在 HTML 页上执行以下操作:调用任何 JavaScript 函数。传递任意数量、具有任意名称的参数。传递各种数据类型(Boolean、Number、String 等等)。接收来自 JavaScript 函数的返回值。通过在 HTML 页上使用 JavaScript,可以:调用 ActionScript 函数。使用标准的函数调用表示法传递参数。将值返回给 JavaScript 函数。获取flash以供javascript与其交互之用:方法一:function getFlashMovieObject(movieName){ if (window.doc...
阅读全文
摘要:由于Dom方法和ECMAScript方法就好比两个独立的岛屿,两者之间如果过多交互会带来一些性能消耗。我们应当尽量减少两者的交叉使用。例如JS操作Dom1、chrome等webkit浏览器下:Dom方法比innerHTML方法性能要好。2、firefox、IE、opera等浏览器反而是innerHTML比Dom方法性能好。DOM优化方法:减少dom操作1、采用节点克隆方法 - cloneNode2、访问元素集合 - 尽量采用局部变量(把常用到的值存到一个局部变量里面)3、元素节点 - 尽量用只获取元素的节点方法(例如childNodes -> 元素节点、文本节点; children -&
阅读全文
摘要:学习笔记:闭包的概念闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。闭包的用途闭包可以用在许多地方。它的最大用处有两个:1、一个是前面提到的可以读取函数内部的变量;2、另一个就是让这些变量的值始终保持在内存中。使用闭包的注意点1、由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局
阅读全文
摘要:通过对日常工作的思考,把遇到过的页面需求抽出来做一些dome,当做练手和实验一些新技术的方式。工作中时常用到的焦点图切换效果,平时都用一些优秀的兼容性比较好的插件来实现居多。今天来根据自己的思路写一个。(还需要后续的完善。。。)html: <div class="scroll_pic"> <ul class="clearfix"> <li><a href=""><img src="images/b_1.jpg" alt=""></
阅读全文
摘要:W3C所制订的DOM Level分为两大模块:Core和HTML。第一个大模块是Core核心,W3C规范是这样描述Core的:满足软件开发者和Web脚本编写者,访问和操控产品项目中包含的可解析的HTML和XML内容。DOM Core,并不专属于JavaScript(如php也支持)。第二个HTML模块,规范描述为:HTML之中特定元素的功能,和恰到好处的、易用的、针对常见性任务的HTML文档操作机制。HTML模块的意义也在于解决了向后兼容的问题。DOM(文档对象模型)是由W3C制定的一套访问和操作XML(eXtensible Markup Language)文档的标准,即API。DOM与特定的
阅读全文
摘要:HTML5中的script属性1、移除了language属性,改type为可选。2、新增async属性,定义脚本是否异步执行,取值true或false。 加入这属性就可以在head标签内插入script,脚本与文档同时下载,脚本、文档同时执行。async的作用(区分于defer):1 async 属性为 true,则脚本会相对于文档的其余部分异步执行,这样脚本会可以在页面继续解析的过程中来执行。2 async 属性为 false,而 defer 属性为 true,则脚本会在页面完成解析时得到执行。3 async 和 defer 属性均为 false,那么脚本会立即执行,页面会在脚本执行完毕继续
阅读全文
摘要:检测属性是否被支持根据对象属性和/或者对象方法是否被支持来把代码进行条件分支。举例来说,在 IE6浏览器上,document.body对象包含一个名为scrollTop的属性,用来确定鼠标事件发生时,鼠标y轴在页面上的位置(不仅指页面的可视部分)。为了确保浏览器对scrollTop 属性的支持作如下做检测:if (document.body.scrollTop) {// statements that work with scrollTop property}然而问题(脚本错误)还是出现了,出现在当这个document.body对象浏览器不支持时。所以为了避免这种错误,表达式必须首先测试doc
阅读全文
摘要:addLoadEvent可以实现无论有多少个函数,都能让它们同时和window.onload事件绑定。addLoadEvent工作流程:1 把现有的window.onload事件处理函数的值存入变量oldonload。2 如果在这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它;3 如果在这个处理函数已经绑定了一些函数,就把函数追回到现有指令未尾。4 浏览器加载html内容是自上而下的(默认),而JS一般是在哪里引入——想想如果JS里面包含了一些即时执行指令,它会操作根本不存在元素节点(因为还没有加载完)会有什么后果?结果就是出错。addLoadEvent()函数代码:functi
阅读全文
摘要:Javascript中小括号“()”的多义性:Javascript中小括号有五种语义语义1,函数声明时参数表function func(arg1,arg2){ // ... } 语义2,和一些语句联合使用以达到某些限定作用// 和for in一起使用 for(var a in obj){ // ... } // 和if一起使用 if(boo){ //... } // 和while一起使用 while(boo){ // ... } // 和do while一起使用 do{ // ... }while(boo) 注意:在与if...
阅读全文
摘要:一、变量的类型 Javascript和Java、C这些语言不同,它是一种无类型、弱检测的语言。它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量。例如:i=100;//Number类型i="variable";//String类型i={x:4};//Object类型i=[1,2,3];//Array类型 JS的这种特性虽然让我们的编码更加灵活,但也带来了一个弊端,不利于Debug,编译器的弱检测让我们维护冗长的代码时相当痛苦。 二、变量的声明 JS中变量申明分显式申明和隐式申明。 var i=100;//显式申明 i=100;/
阅读全文
摘要:今天系统的学了一下javascript的内置对象。mark相关的知识点:首先,什么是js的内置对象,它包括了些什么内容?(以下内容转自网上资源的整合)(W3shool JS手册地址:http://www.w3school.com.cn/js/js_reference.asp)作为一门编程语言,JavaScript提供了一些内置的对象和函数。内置对象提供编程的几种最常用的功能。JavaScript内置对象有以下几种。●String对象:处理所有的字符串操作●Math对象:处理所有的数学运算●Date对象:处理日期和时间的存储、转化和表达●Array对象:提供一个数组的模型、存储大量有序的数据●E
阅读全文
摘要:使用Firebug调试JavaScript非常方便。具体步骤:a. 打开Firebug后,启用“脚本”调试,找到引用的脚本文件(或者行内js);b. 在适当的位置加入断点;c. 如果断点已经执行过,则刷新页面,这时脚本就会在断点处中断。如果断点没有执行过,那可以直接执行页面上的动作(例如点击按钮等),然后代码会在断点处中断;d. 观察函数调用栈,观察local变量,也可以进行单步执行,进行调试。确实非常简单!用Firebug断点调试的优点总结如下:能加断点的行用绿色行号,非常直观;call stack用两种方式显示出来,很方便;本地变量的显示非常清晰明了。
阅读全文

浙公网安备 33010602011771号