随笔分类 -  S1-读书笔记

1
js高级程序设计、权威指南
labeled statement:标签语句
摘要:foo: for (var i=0; i= 2) { // console.log( 'stopping!', i, j); // 跳出标签 foo 所在的循环/代码块,继续执行后面的代码 break foo; } console.log('inner:', i, j); } } console.log('跳... 阅读全文
posted @ 2017-02-22 10:07 狂流 阅读(967) 评论(0) 推荐(0)
Values & Reference:值和引用
摘要:var a = 2; var b = a; //b 是 a 的值的一个副本 b++; a; //2 b; //3 var c = [1, 2, 3]; var d = c; // d 是 值[1, 2, 3]的一个引用 d.push(4); c; // [1, 2, 3, 4] d; // [1, 2, 3, 4] d = [4, 5, 6]; // consol... 阅读全文
posted @ 2017-02-16 09:01 狂流 阅读(315) 评论(0) 推荐(0)
prototype:构造函数的真相、原型链
摘要:函数不是构造函数,但是当且仅当使用 new 时,函数调用会变成 ‘构造函数调用’。那么对 ’构造函数‘ 最准确的解释是:所有带 new 的函数调用。 Nothing 只是一个普通的函数,但使用 new 调用时,它会构造一个对象并赋值给 a ,这个对象通过原型链关联着对象 Nothing。 虽然这和传统的‘类继承’很相似,但是 JavaScript 中的机制有一个核心区别,那就是不会进行复制,对象之... 阅读全文
posted @ 2017-02-12 19:00 狂流 阅读(559) 评论(0) 推荐(0)
Object value iterator:值迭代器
摘要:1 // ES5 2 // 对于数组,使用标准的 for 循环,其实这种方式并不是在遍历值,而是遍历下标来指向值!ES5中增加了一些数组迭代器:forEach、every、some 3 // forEach:遍历数组中的所有值并忽略回调函数的返回值 4 // every:一直运行直到回调函数返回 false 5 // some:一直运行直到回调函数返回 true 6 // 对于对象,... 阅读全文
posted @ 2017-02-08 09:34 狂流 阅读(529) 评论(0) 推荐(0)
js的作用域
摘要:首先明确一下:词法作用域是在写代码或者说定义时确定的,而动态作用域是在运行时确定的! 其实 JavaScript 并不具有动态作用域,它只有词法作用域,但 this 机制某种程度上很像动态作用域。 词法作用域关注函数在何处声明,而动态作用域关注函数从何处调用! 词法作用域让 foo() 中的 a 通 阅读全文
posted @ 2017-02-03 18:48 狂流 阅读(218) 评论(0) 推荐(0)
Module loader:模块加载器
摘要:<p data-height="265" data-theme-id="0" data-slug-hash="XpqRmq" data-default-tab="result" data-user="286810" data-embed-version="2" data-pen-title="Mod 阅读全文
posted @ 2017-02-03 17:11 狂流 阅读(430) 评论(0) 推荐(0)
由斐波那契数列所引发的性能优化
摘要:Fibonacci 数列:一个 Fibonacci 数字是之前两个 Fibonacci 数字之和,最前面的两个数字是 0 和 1 。很显然要用一个递归函数来实现: var opt = {}; opt.nLoop = 0; function fib(n){ opt.nL... 阅读全文
posted @ 2016-01-14 17:55 狂流 阅读(346) 评论(0) 推荐(0)
[转] jQuery源码分析-如何做jQuery源码分析
摘要:jQuery源码分析系列(持续更新)jQuery的源码有些晦涩难懂,本文分享一些我看源码的方法,每一个模块我基本按照这样的顺序去学习。当我读到难度的书或者源码时,会和《如何阅读一本书》结合起来进行学习。推荐读读这本书,你可以从这里和这里下载。第一部分:检视阅读1.收集参考资料:官方文档、书籍、百度/... 阅读全文
posted @ 2015-04-29 15:59 狂流 阅读(186) 评论(0) 推荐(0)
S1:动态方法调用:call & apply
摘要:js中函数执行的两种方式:一是通过调用运算符’()’,二是通过调用call或apply来动态执行。一、动态方法调用中指定this对象开发中我们往往需要在对象B中调用对象A的方法,这个时候就用到了apply()和call(),它们的第一个参数就是用于指定this对象,如果为null,则表明传入默认的宿... 阅读全文
posted @ 2015-04-03 10:01 狂流 阅读(209) 评论(0) 推荐(0)
S1:原型继承
摘要:一、基本性质function obj(){ this.name1 = '可以被delete删除'; } obj.prototype.name2 = '不能被delete删除'; obj.prototype.name = '成功调用getName()方法'; obj.getName = function(){ console.log(this.prototype.name); } var ... 阅读全文
posted @ 2015-03-03 18:25 狂流 阅读(268) 评论(0) 推荐(0)
S1 :闭包
摘要:闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数,以createComparisonFunction()函数为例function createComparisonFunction(propertyName) { return functi... 阅读全文
posted @ 2014-09-18 11:40 狂流 阅读(165) 评论(0) 推荐(0)
S1 : 递归
摘要:递归函数是在一个函数通过名字调用自身的情况下构成的,如下所示function f(num){ if(num<=1){ return 1; } else { return num*f(num-1); } } 这是一个经典的递归阶乘函数。虽... 阅读全文
posted @ 2014-09-12 11:39 狂流 阅读(176) 评论(0) 推荐(0)
S1 : 函数
摘要:一、做为值的函数例如,假设有一个对象数组,我们想要根据某个对象属性对数组进行排序。而传递给数组sort()方法的比较函数要接收两个参数,即要比较的值。可是,我们需要一种方式来指明按照哪个属性来排序。要解决这个问题,可以定义一个函数,它接收一个属性名,然后根据这个属性名来创建一个比较函数,下面就是这个... 阅读全文
posted @ 2014-09-09 15:58 狂流 阅读(283) 评论(0) 推荐(0)
S1 :数组迭代方法
摘要:ECMAScript 5 还新增了两个归并数组的方法:reduce()和reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce()方法从数组的第一项开始,逐个遍历到最后。而reduceRight()则从数组的最后一项开始,向前遍历到第一项。这两个方法... 阅读全文
posted @ 2014-09-09 10:32 狂流 阅读(135) 评论(0) 推荐(0)
S1 : 传递参数
摘要:ECMAScript 中所有函数的参数都是按值传递的。也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。基本类型值的传递如同基本类型变量的复制一样,而引用类型值的传递,则如同引用类型变量的复制一样。有不少开发人员在这一点上可能会感到困惑,因为访问变量有按值和按引用... 阅读全文
posted @ 2014-09-03 15:48 狂流 阅读(170) 评论(0) 推荐(0)
S1:new操作符
摘要:function Shape(type){ this.type = type || "rect"; this.calc = function(){ return "calc, "+this.type; }}var triangle = new Shape("trian... 阅读全文
posted @ 2014-08-21 11:09 狂流 阅读(164) 评论(0) 推荐(0)
S1:函数上下文
摘要:函数的上下文是可以变化的,因此,函数内的this也是可以变化的,函数可以作为一个对象的方法,也可以同时作为另一个对象的方法,总之,函数本身是独立的。可以通过Function对象上的call或者apply函数来修改函数的上下文://定义一个全局的函数对象function printName(){ ... 阅读全文
posted @ 2014-08-20 07:18 狂流 阅读(276) 评论(0) 推荐(0)
S1:对象与JSON
摘要:JSON全称为JavaScript对象表示法(JavaScript Object Notation)。JSON是JavaScript中对象的字面量,是对象的表示方法,通过使用JSON,可以减少中间变量,使代码的结构更加清晰,也更加直观。使用JSON,可以动态的构建对象,通过向对象添加或删除属性来完善... 阅读全文
posted @ 2014-08-18 18:28 狂流 阅读(175) 评论(0) 推荐(0)
S1:运算符
摘要:中括号和小括号的用法:一般而言,对象中的属性的值是通过点(.)运算符来取值,但是考虑到这样一种情况,我们在遍历一个对象的时候,对其中的属性的键(key)是一无所知的,我们怎么通过点(.)来访问呢?这时候我们就可以使用[]运算符:var obj = { id : "object1", "self.... 阅读全文
posted @ 2014-08-18 18:21 狂流 阅读(152) 评论(0) 推荐(0)
S1:变量
摘要:接触JS一段时间了,但总感觉不得要领,技术得不到提升,翻来覆去,决定对基础知识做一次系统的整理,要坚持每一天都有新的收获 !变量,即通过一个名字将一个值关联起来,以后通过变量就可以引用到该值,比如:var str = "Hello, World";当我们下一次要引用”Hello, Wrold”这个... 阅读全文
posted @ 2014-08-17 14:18 狂流 阅读(184) 评论(0) 推荐(0)

1