Web Notes
2016.08.20
Using Liquid in Jekyll - Live with Demos
Liquid is a simple template language that Jekyll uses to process pages for your site. With Liquid you can output complex contents without additional plugins.
虽然 ES8 已经发布,但是以我的基础来说还是从 ES6 (ECMAScript 2015) 开始,此番就跟着 JavaScript by Example 这本书来学习,随手记点笔记,以期长点记性。
class 算是 ES6 的新特性了,在 JavaScript 中用 class,有助于我们将代码模块化。例如:
class ToDoClass {
constructor() {
console.log("Hello world!")
}
}
window.addEventListener('load', function() {
var toDo = new ToDoClass();
});
load
事件会在资源加载完后执行。
也可以将上面代码改写成 ES6 的箭头函数的形式:
let ToDo;
window.addEventListener("load", () => {
toDo = new ToDoClass();
})
要注意,箭头函数的 this
对象继承自其 parent,而不是与它自己绑定。
let a = x => {}
let sum = (x, y) => x + y; // 单行返回可省略 return 和 {}
ES6 中推荐使用 let
来声明变量,let
限制变量的作用域在 {}
中,而 var
的作用域是在一个函数体内。
let
一个很有用的地方就是定义 for
循环中的变量,例如:
for(let i=0; i<5; i++) {}
那么这个 i
只能在此循环中起作用,在该循环外可以放心使用 i
作为变量名了。
const
和 let
类似,只是 const
声明的变量其值不能再改变。需注意,虽然 const
整体不能改变,但是其属性仍然可以变:
const a = 5;
a = 7; // 这就不行了
const b = {
a: 1,
b: 2
};
b = {a: 2, b: 1}; // 这也不行
b.a = 2; // 这个却可以,因为只改了其具体属性而不是整体
在 ES6 中,应该完全放弃使用
var
,而使用const
声明不需要改变的值,用let
声明需要改变的变量。
经常会在 JavaScript 中生成一些很长的 html 字符串,若是用 +
和各种 \
换行,会很容易弄错。ES6 引入了一种类似与 markdown 中 fence code block 的方式来处理跨行的字符串:
let html = `
<div>
<li>${myVar}<li>
</div>
`
还能在其中使用 ${}
的方式引用外部变量,这样方便多了。
除了常见的点击事件,按键事件也是经常需要考虑的,最常见的莫过于回车、Ctrl + S 这些:
document.getElementById('someId').addEventListener('keypress', event => {
if(event.keyCode == 13) {
// some function
}
});
这里,回车的 keyCode
是 13,所以绑定这个即可。其他按键见下表1:
Key | Code | Key | Code | Key | Code |
---|---|---|---|---|---|
backspace | 8 | e | 69 | numpad 8 | 104 |
tab | 9 | f | 70 | numpad 9 | 105 |
enter | 13 | g | 71 | multiply | 106 |
shift | 16 | h | 72 | add | 107 |
ctrl | 17 | i | 73 | subtract | 109 |
alt | 18 | j | 74 | decimal point | 110 |
pause/break | 19 | k | 75 | divide | 111 |
caps lock | 20 | l | 76 | f1 | 112 |
escape | 27 | m | 77 | f2 | 113 |
page up | 33 | n | 78 | f3 | 114 |
page down | 34 | o | 79 | f4 | 115 |
end | 35 | p | 80 | f5 | 116 |
home | 36 | q | 81 | f6 | 117 |
left arrow | 37 | r | 82 | f7 | 118 |
up arrow | 38 | s | 83 | f8 | 119 |
right arrow | 39 | t | 84 | f9 | 120 |
down arrow | 40 | u | 85 | f10 | 121 |
insert | 45 | v | 86 | f11 | 122 |
delete | 46 | w | 87 | f12 | 123 |
0 | 48 | x | 88 | num lock | 144 |
1 | 49 | y | 89 | scroll lock | 145 |
2 | 50 | z | 90 | semi-colon | 186 |
3 | 51 | left window key | 91 | equal sign | 187 |
4 | 52 | right window key | 92 | comma | 188 |
5 | 53 | select key | 93 | dash | 189 |
6 | 54 | numpad 0 | 96 | period | 190 |
7 | 55 | numpad 1 | 97 | forward slash | 191 |
8 | 56 | numpad 2 | 98 | grave accent | 192 |
9 | 57 | numpad 3 | 99 | open bracket | 219 |
a | 65 | numpad 4 | 100 | back slash | 220 |
b | 66 | numpad 5 | 101 | close braket | 221 |
c | 67 | numpad 6 | 102 | single quote | 222 |
d | 68 | numpad 7 | 103 |
说不定今后也会常来参考这个表。
当然,还可以去 http://keycode.info 交互式体验一番 keyCode,在此页上按下按键会显示相应的 keyCode。
好了,今天就看这点点,还有其他实验要去做,希望能每天累计一点点吧。以上。
Frank Lin
Web Notes
2016.08.20
Liquid is a simple template language that Jekyll uses to process pages for your site. With Liquid you can output complex contents without additional plugins.
JavaScript Notes
2018.12.17
JavaScript is a very function-oriented language. As we know, functions are first class objects and can be easily assigned to variables, passed as arguments, returned from another function invocation, or stored into data structures. A function can access variable outside of it. But what happens when an outer variable changes? Does a function get the most recent value or the one that existed when the function was created? Also, what happens when a function invoked in another place - does it get access to the outer variables of the new place?
Tools
2020.10.20
IBM Cloud CLI allows complete management of the Cloud Functions system. You can use the Cloud Functions CLI plugin-in to manage your code snippets in actions, create triggers, and rules to enable your actions to respond to events, and bundle actions into packages.