随笔分类 - javascript
摘要:原型链(Prototype chain) ECMAScript中描述了原型链的概念,并将原型链作为实现继承的主要方法。其基本思想是利用原型让一个引用类型继承里一个引用类型的属性和方法。简单回顾下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包
阅读全文
摘要:1、try-catch语句 如果try块中的任何代码发横了错误,就会立即退出代码执行过程,然后接着执行catch块。此时,catch块会接收到一个包含错误信息的对象。与在其他语言中不同的是面积是你不想使用这个错误对象,也要给他起个名字。这个对象中包含的实际信息会因浏览器而异,但共同的是有一个保存这错
阅读全文
摘要:与函数绑定紧密相关的主题是函数柯里化,它用于创建已经设置 好了一个或多个参数的函数。函数柯里化的基本方法和函数绑定是一样的:使用一个闭包返回一个函数。两者的区别在于,当函数被调用时,返回的函数还需要设置一些传入的参数。请看一下例子: 这段代码定义了两个函数:add()和curriedAdd()。候着
阅读全文
摘要:函数节流背后的基本思想是指,某些代码不 可以在没有间断的情况连续重复执行。第一次调用函数,创建一个定时器,在指定的时间间隔之后执行代码。当第二次调用该函数时,它会清楚前一次的定时器并设置另一个。如果前一个定时器已经执行过了,这个操作就没有任何意义然而,如果前一个定时器尚未执行,其实就是将其替换为一个
阅读全文
摘要:由于事件处理程序可以为现代web应用程序提供交互能力,课时再js中,添加到页面的事件处理程序数量将直接关系到页面的整体运行性能。导致这一问题的原因是多方面的。首先,每个函数都是对象,都会占用内存;内存中的对象越多,性难就越差。其次,必须事先指定所有事件处理程序而导致的DOM访问次数,会延迟整个页面的
阅读全文
摘要:使用innerHTML替换子节点可能会导致浏览器的内存占用问题,尤其是在IE中,问题更加明显。在删除带有时间处理程序或引用了其他js对象子树是,就有可能导致内存占用问题。假设某个元素有一个事件处理程序,在使用前某个属性将该该元素从文档树种删除后,元素与时间处理程序之间的绑定关系在内存中并没有一并删除
阅读全文
摘要:1.在一般函数方法中使用 this 指代全局 function test(){ this.x = 1; alert(this.x); } test(); // 1 function test(){ this.x = 1; alert(this.x); } test(); // 1 function
阅读全文
摘要:js继承的概念 js里常用的如下两种继承方式: 由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念。所以,要想实现继承,可以用js的原型prototype机制或者用apply和call方法去实现 在面向对象的语言中,我们使用类来创建一个自定义对象。然而js中所有事物都是对
阅读全文
摘要:闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMAScript 规范给的定义,如果没有实战经验,很难从定义去理解它。因此,本文不会对闭包的概念进行大篇幅描述,直接上干货,让你分分钟理解闭包! 1闭包,一睹为快 在接触一个新技术的时候,我首先会
阅读全文
摘要:恢复内容开始 题目一 (function(){ return typeof arguments;})(); 答案:“object” arguments是对象,伪数组有两件事要注意这里: 参数不是数组,它是一个数组一样的物体,你可以使用方括号和整数索引的元素,但方法通常可在一个如推上不存在参数数组;
阅读全文
摘要:1. 原始值和引用值(Value vs. Reference) 理解对象、数组和函数是如何复制和传递到函数中的。了解引用值是被复制了什么,理解原始值是通过复制值来进行复制和传递的。 简析:ECMAScript 定义了五种原始值类型:Undefined,Null,Boolean,Number和Stri
阅读全文
摘要:一、立即执行函数方式 js立即执行函数可以让你的函数在创建后立即执行,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行。 方式1、最前最后加括号 方式2、function外面加括号 方式3、function前面加运算符,常见的是!与void 错误方
阅读全文
摘要:1、获取本周的星期一和星期天的日期 2、获取近n个月的日期 比如求近3个月的日期,如果当前时间是2017-11-16,近3个月就是2017-09-01 00:00:00; 再比如求近6个月,如果当前时间是2017-3-16,近6个月就是2016-10-01 00:00:00;
阅读全文
摘要:这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。 下表给出了相对http://store.company.com/dir/page.
阅读全文
摘要:我们在js程序中需要进行频繁的变量赋值运算,对于字符串、布尔值等可直接使用赋值运算符 “=” 即可,但是对于数组、对象,如果用“=”赋值,也许你们也和我一样碰到过修改赋值后的变量,原来的数据也会相应的改变。以下是解决方法: <!--[if !supportLists]-->1、<!--[endif]
阅读全文
摘要:This的定义: 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。 this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象, 这说明this关键字只与函数的执行环境有关,而与声明环境没有关系。下面通过例子来
阅读全文
摘要:clientHeight:元素客户区的大小,指的是元素内容及其边框所占据的空间大小(经过实践取出来的大多是视口大小) scrollHeight: 滚动大小,指的是包含滚动内容的元素大小(元素内容的总高度) offsetHeight: 偏移量,包含元素在屏幕上所用的所有可见空间(包括所有的内边距滚动条
阅读全文

浙公网安备 33010602011771号