2020-02-25(周二)

今天主要修改了小窝的语录功能,从原有的 Post 表单提交方式改为 Ajax + API 提交,为以后全站 API 化,可能实现的前后端分离做好准备。晚上则是重新复习了一波 ES6 的变量解构(因为此前看过阮一峰的教程),主要内容如下:
let [a, b, c] = [5, 1, 2];
// 等同于 let a = 5, b = 1, c = 2;

let arr = [4, 5];
let [x, y, z] = arr;  // 等同于 let x = 4, y = 5, z = undefined
let [a, b, c] = [1, [1, 2], {id: 1}];  // 等同于 let a = 1,  b = [1, 2], c = {id: 1}
let [a, [b], d] = [1, [2, 3], 4];  // 等同于 let a = 1, b = 2, d = 4;

let arr2 = [100, 200];
let [x = 1, y = 2] = arr2;
// 等同于 let x = 100, 200,因为有内容,如果不用默认参数,就是
// let x = arr2[0] || 1, y = arr2[1] || 2;

let [x = 1, y = 2] = [6];  // 等同于 let x = 6, y = 2
let [x = 10, y = 20] = [];  // 等同于 let x = 10, y = 20
let [x, y = 100] = [10];  // 等同于 let x = 10, y = 100

// 以下两种情况只有 undefined 会变成 1
let [x = 1] = [null]
let [x = 1] = [undefined]
以此同时,还了解了对象的解构,它和数组也很相似,就是解构出来的变量名如果要改,必须使用 : 说明一下。左侧为匹配模式,右侧为修改的变量名
let obj = {
    name: "Paul",
    age: 19,
    id: 1
}
let {name, age} = obj;  // 等同于 let name = obj.name, age = obj.age
let {name:n, age:a} = obj;  // 等同于 let n = obj.name, a = obj.age

let {a} = {x: 1, y: 2};  // 无法匹配
let {x:a} = {x: 1, y: 2};  // 等同于 let a = 1,a 作为变量,x 作为匹配模式

let {x = 1, y = 10} = {x:undefined};  // 等同于 let x = 1, y = 10
let {x:y = 5} = {x: 10};  // 等同于 let y = 10
以及函数解构:
function test([x = 1, y = 2]) {
    return x + y;
}
test([10]);

function test2(x, y) {
    x = x || 1;
    y = y || 2;
    return x + y;
}
test2(10);

function test3({x = 1, y = 2}){
    return x + y;
}
test3({x: 10})
开心

2020-02-21(周五)

今天上午修改了小窝的顶栏,取消了原有的黄色小花,改成了和电脑版类似的顶栏设计,并且修改了侧边菜单的布局,改为全屏显示。 下午一点继续尝试给自己的华硕笔记本安装黑苹果,安装的过程是真的折腾。首先我从黑果小兵的博客上下载准备好黑苹果的系统镜像,写入到优盘。之后使用网友提供的对应本机的 Clover 配置,成功引导。不过进去之后画面提示我开关鼠标或触摸板,可能是无法识别电脑的触摸板,需要我自己连接一个鼠标才行。 由于我的华硕笔记本是 2015 年入学时买的飞行堡垒,至今已经差不多用了五年,大大小小的毛病陆续开始出来了。电脑的 USB 接口已经出现了损坏,右侧的 2.0 接口无法使用,左侧有一个 3.0 的触片老化接触不良。我翻箱倒柜找到了以前买的一个 Hub,由于那玩意质量很差,现在只有两个口可以用了。刚好一个插优盘一个插鼠标,勉勉强强的顺利完成了整个黑苹果的安装步骤... 进入系统后,MacOS 的界面相对 Windows 一些继承了十几年的外观,确实做的更精致。而且意外发现这个系统跑起来还是比较流畅的,比 Ubuntu 的桌面帧数更高(Ubuntu 的桌面体验是真的很一般,装了独显驱动还是只有那种只有 30 不到的帧数)缺点就是用它只能插着网线,暂时没有找到合适的无线网卡和蓝牙的驱动程序(我电脑的网卡曾经换过,不知道这个要怎么搞) 借助黑苹果的 Safari 浏览器,我也亲自复现了 Single 主题的目录树点击后滚动无效的问题,由于我更换了硬盘来安装 MacOS,没法重新调取原有的资料,暂时还没有去详细分析具体原因。 下午两三点收了个快递,是我前几天买的新千兆路由器 ACRH17。也是我蹲在家差不多一个月之后第一次出门,还带了瓶可乐回来喝,真爽!升级了这款设备意味着我用 NAS 的写入和读取速度必然会翻倍提升,测试了一下,插入网线读取可以达到 100MB/s 左右,写入 75MB/s 的速度,比此前的 11MB/s 舒服多了。 晚上开了几局空降奇兵,升级了赛季手册,获得了一套“雪山精英”,全身深绿色,是不是有种吉利服的感觉呢?之后继续给 MacOS 装软件,发现 VSCode 安装失败,研究后发现其实是解包导致的问题。直接在 Windows 下解包丢给 MacOS 是不行的,只能在 Mac 环境下进行解压和安装的操作。什么,你问我为什么要在 Windows 下载 Mac 的软件?只是因为我不会在 Mac 下配置 Windows 那边的加速器,只能在那边下好传过来...
配乐 多云 开心

2020-02-18(周二)

我在 GitHub 上发布了一个新项目“Mystery”,为了简洁命名,还省去了“Box”。这个项目主要收录的是我此前做的一些小项目,以及在学习过程中弄的测试内容,希望这些东西对大家能有些参考价值吧... 之后它也将有个新的首页,到时候会直播设计和代码流程。 下午四点半,我又带着我妈学电脑了。首先让她重把昨天和她讲到的东西复习一遍,并且问问她对各个功能的理解程度。一番询问后,得知她概念比较模糊的是快捷方式。我又用了一个很现实的东西打比喻,快捷方式其实就像个书签,方便快捷的定位到这本书里的哪个位置。 举个例子,我在衣柜里某个袋子的衣服里藏了一件宝贝,怕自己忘记,于是在桌上贴了个便签,便签上写明了这件物品藏在了哪个位置。这个便签可有可无,衣柜的那件宝贝始终在那里放着。如果那件宝贝被丢了,你恰巧看到便签的内容后打算找它却发现不见了,但是在垃圾桶里找到了(快捷方式双击后提示文件可以从回收站里还原)又或者是在垃圾桶里翻了个遍也没有,这便签(快捷方式无效)不就失去价值可以扔掉了嘛。 接着,我又让她学习 Word 的使用,操作系统她一脸懵逼,但是 Word 以前她学过老版本,有些功能还有印象。我鼓励她自己独立操作,寻找相关按钮、菜单的位置,成绩还不错,就看她明天还是否记得吧... 晚上饭后我通过白嫖的公开课,学习到了 Vue/Cli 的简单使用。通过这个东西理解了一部分 Vue 应用的概念,搭建了个名为脚手架的东西,它可以更快的利用各个组件,快速搭建一个带路由的网站。如果使用路由系统,则是会默认通过 Hash 的方式实现(例如 localhost:3333/#/about 这种)同时终于明白什么是“生命周期”了,其实就是从它的加载到被销毁的整个过程。
未知 一般

2020-02-16(周日)

今天主要录了一波《侠盗猎车:3》的游戏解说视频。由于是第一次做这样类型的节目,难免有很多讲的不够流畅的地方,还是希望大家多多包涵。 在此期间主要有一个大问题,就是使用麦克风录音的时候,由于电脑的音频输入接口有点接触不良,导致部分得到的成品存在大量的电流噪音,尝试用 Audition 也没法完全的去除掉。因为这个问题,有两集我完成后,又重新读档、重新录制,实在是非常消耗精力。
配乐 未知 一般

2020-02-14(周五)

今天又继续看了阮一峰的 ES6 教程,主要了解了函数相关的新增方法。其实此前我会用的箭头函数,主要还是用于返回值的,整理了一下,以下三种函数的写法,其返回结果都是一致的。
// 获取输入框
static getInput(name){
    return document.getElementsByName(name)[0];
}

static getInput2 = (name) => document.getElementsByName(name)[0];

static getInput3 = (name) => {
    return document.getElementsByName(name)[0];
}
同时还得知了一种名为 Rect 的参数写法,在参数名前加三个点 ...num,用于获取函数多余的参数,在 ES5 则只能使用一个名为 arguments 的属性获取。这种参数只能放在最后一项,否则就会报错。不过我怎么觉得实际使用的情况下,其实数组会用的更多一些?
function push(array, ...items) {
  items.forEach(function(item) {
    array.push(item);
    console.log(item);
  });
}

var a = [];
push(a, 1, 2, 3)
为什么不把 a, 1, 2, 3 写成 a, [1, 2, 3] 呢?这样不是更快一些吗?当然,这种写法我们了解一下问题也不大,毕竟条条大路通罗马,编程就是要灵活运用。
阵雨 一般

2020-02-13(周四)

下午维护了我的 Fantasy 主题,主要给他增加了一个哔哩哔哩番剧的获取功能,同时自制了一个新的图片,用于覆盖顶上标题那个模糊的 png 原图,并且修改了备案号的链接。 在该版本发布不久后,群友发现了一个问题。他表示,把自己的 ID 填进去之后,页面出来的并非是他的番剧。经过我的仔细检查,发现的问题其实是一行三元表达式存在问题。在嵌套三元表达式的情况下,第二次嵌套必须加上小括号,否则会无视其他规则,直接执行右数第一个三元表达式的结果。
$uid = $bgm_user ? $bgm_user : $mode === "bili" ? 124512959 : 433599;
$uid = $bgm_user ? $bgm_user : ($mode === "bili" ? 124512959 : 433599);
这两段代码在 $bgm_user 未赋值的情况下,结果都相同。但如果 $bgm_user 被赋值了,结果前者返回的是 124512959 而不是$bgm_user。很明显,这就不符合我们的预期了。今日踩坑一时,是为了下一次不再遇到它!
配乐 小雨 一般

2020-02-12(周三)

今天主要修改完善了仪表板及日记界面,由原来的白色背景,变成了淡灰色。感觉这样设计,就会使白色底的面板元素成为万能色,可以直接和任何颜色搭配,而不会显得很奇怪。
多云 一般
奇趣音乐盒 技术源于 Kico Player
Emmm,这里是歌词君