JavaScript学习笔记-Map&Reduce
高阶函数一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
function add(x, y, f) { return f(x) + f(y);}var x = add(-5, 6, Math.abs); // 11alert(x);//等价于var x = Math.abs(-5)+ Math.abs(6)
map由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果:
var arr=[1,2,3,4,5,6];function f(x){ return x*x};var xx=arr.map(f); //[1, 4, 9, 16, 25, 36]//等价于var f = function (x) { return x * x;};var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];var result = [];for (var i=0; i<a ...
JavaScript学习笔记-对象的方法
定义给xiaoming绑定一个age()方法:
>var xiaoming={ name:'xiaoming', birth:1990, age: function(){ var y= new Date().getFullYear() // return y-this.birth } }>xiaoming.age//function(){// var y= new Date().getFullYear()// return y-this.birth// }>xiaoming.age() //28
方法内部,this是一个特殊变量,它始终指向当前对象,也就是xiaoming这个变量。所以,this.birth可以拿到xiaoming的birth属性。类似于python class 方法中的 self 参数
看一些例子:
function getAge() { va ...
JavaScript学习笔记-Function
定义函数方法1function abs(x) { if (x >= 0) { return x; } else { return -x; }}
function指出这是一个函数定义;
abs是函数的名称;
(x)括号内列出函数的参数,多个参数以,分隔;
{ ... }之间的代码是函数体,可以包含若干语句,甚至可以没有任何语句。
函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。
如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined。
方法2var abs = function (x) { if (x >= 0) { return x; } else { return -x; }};
和第一种形式等价,末尾要加 ;。在 ...
JavaScript学习笔记-Array
基本操作>var arr=[1,2,3,'hjh']1,2,3,"hjh">arr.length4>arr.indexOf(3)2>arr.indexOf('no') //不存在返回-1-1
可以通过索引把对应的元素修改为新的值,因此,对Array的索引进行赋值会直接修改这个Array:
var arr = ['A', 'B', 'C'];arr[1] = 99;arr; // arr现在变为['A', 99, 'C']arr[5] = 'x';arr; // arr变为['A', 99, 'C', undefined, undefined, 'x']
大多数其他编程语言不允许直接改变数组的大小,越界访问索引会报错。然而,JavaScript的Array却不会有任何错误。在编写代码时,不建议直接修改Array的大小,访问 ...
JavaScript学习笔记-For& While
forfor循环,通过初始条件、结束条件和递增条件来循环执行语句块
var x = 0;var i;for (i=1; i<=10000; i++) { x = x + i;}x; // 50005000
遍历数组:
var arr = ['Apple', 'Google', 'Microsoft'];var i, x;for (i=0; i<arr.length; i++) { x = arr[i]; alert(x);}
for … invar arr = ['Apple', 'Google', 'Microsoft'];var i, x;for (i in arr) { x = arr[i]; //i遍历的是索引 alert(x);}
or
var o = { name: 'Jack', age: 20, cit ...
JavaScript学习笔记-If-else
if clauseif () { ... } else { ... }
e.g. judge the teenager
var age = 20;if (age >= 18) { alert('adult');} else { alert('teenager');}//or 单行情况下var age = 20;if (age >= 18) alert('adult'); else alert('teenager');
多重判断if () { ... } else if (){ ...}else { ... }
e.g.
var age = 3;if (age >= 18) { alert('adult');} else if (age >= 10) { ...
JavaScript学习笔记-Iterable
iterable类型遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。iterable类型可以用for ... of循环来遍历。
for…of…var a = ['A', 'B', 'C'];var s = new Set(['A', 'B', 'C']);var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);for (var x of a) { // 遍历Array alert(x);}for (var x of s) { // 遍历Set alert(x);}for (var x of m) { // 遍历Map alert(x[0] + '=' + x[1]);& ...
JavaScript学习笔记-Map& Set
MapES6标准引进的key-value数据类型,相当于python中的dictionary增加查找速度,本质上是将键值利用哈希算法类似变量存储。
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);//初始化Map需要一个二维数组m.get('Michael'); // 95
或者直接初始化一个空Map。Map具有以下方法
var m = new Map(); // 空Mapm.set('Adam', 67); // 添加新的key-valuem.set('Bob', 59);m.has('Adam'); // 是否存在key 'Adam': truem.get('Adam'); // 67m.delete('Adam'); // 删除key 'Adam'm.get('Adam ...
JavaScript学习笔记-Object
对象javaScript的对象是一种无序的集合数据类型,它由若干键值对组成
var xiaoming = { name: '小明', birth: 1990, 'middle-school': 'No.1 Middle School', height: 1.70, weight: 65, score: null};
注意,最后一个键值对不需要在末尾加,,如果加了,有的浏览器(如低版本的IE)将报错。
使用属性>xiaoming.name; '小明'>xiaoming['name']; '小明'>xiaoming.birth; 1990>xiaoming['middle-school']; 'No.1 Middle School'
属性名middle-school不是一个有效的变量,就需要用’’括起来。访问这个属性也无法使用.操作符,必须用[‘xxx’ ...
倒腾Pelican - Elegant Set Sidebar
依然是初期的一些乱七八糟倒腾系列。不过让我接触了Git,Markdown,静态页面,部署,等等。
Default sidebar optionsAccording to the metadata in your articles,sidebar shows:
1. You can activate Pushlish date, Modification date, Category, Tags functions by specify optional meta data variables Date, Modified, Category and Tags when editing your articles.
2. Social links is set in your ‘pelicanconfig.py’, just add your links to the Dictionary
# Social widgetSOCIAL = (('GitHub', 'https://....'), (' ...
倒腾Pelican - Collapse does not work
这里发现了一个叫Elegent的主题,现在不知道还有没有,那时候这里面的特色,使用折叠效果来展示文章分类。貌似是因为jQuery依赖出了问题,这个动效不生效,所以一顿修改。那时候连jQuery,Bootstrap,HTML都不懂,就凭借着常年debug的技能去修改。
IssueThis happens with the file elegant/templates/base.html, which rules the element of every pagesat around line 97 , there is a quote:
<script src="http://code.jquery.com/jquery.min.js"></script>
it seems the http request is nolonger credited in this case, and a potential consequence is that:The following collapse funtion in elegant/te ...







