Bill' Notes

  • 首页

  • 关于

  • 标签

  • projects

  • 归档

  • 搜索

木材的特点

发表于 2019-04-03 | 更新于 2019-05-13
本文字数: 466 | 阅读时长 ≈ 1 分钟

art-brown-flora

木材为古老而又年轻的绿色环保材料,广泛应用于小到牙签、筷子,大到家具及室内装饰,与我们的生活密切相关。尤其是当前日益火爆的建材市场上,木材作为重要的建筑材料,对人体健康有着直接重要影响,更得到人们的十分关注,所以研究木材对人体健康的保健功效十分必要。
木材作为一种生物材料,经研究,较常用的砖、石、水泥、金属、塑料有如下主要优异的住室功效:

  • 视觉功效
    木材纹理美观,色泽丰富,又能有效地吸收对人体眼睛有害的紫外线,因此使人视觉舒服、健康。
  • 触觉功效
    人与木材接触时,四季温度相近,在木地板上行走时,软硬适当,又富有弹性,木材均给人以良好的触觉。
  • 听觉功效
    木材为天然的多孔性材料,吸声、隔音性能良好。因此,用木质材料装饰的住宅,回声小,隔音效果佳,给人以舒适的安静感。
  • 嗅觉功效
    多种木材经常散发出令人欢快的特殊芳香。经试验,这些芳香可产生对人体健康的保健功效。例如:冷杉,可舒解肌肉疼痛,使人产生温暖感受;柏木,能镇痛,并能镇静神经、松弛精神;樟木,抗痉挛,又具有兴奋作用;桉木,有激励精神的作用;檀香木,有镇静神经、抗抑郁的功效。

红木知识

发表于 2019-04-03 | 更新于 2019-05-05
本文字数: 957 | 阅读时长 ≈ 2 分钟

红木知识问答,现在开始:

1、红色的木材就是红木吗?

红色的木材不一定都是红木,红木心材的材色也不全是红色的。《红木》标准中共列出 8 类(紫檀木类、花梨木类、香枝木类、黑酸枝木类、红酸枝木类、乌木类、条纹乌木类和鸡翅木类),隶属于 5 属(紫檀属、黄檀属、柿属、崖豆属及铁刀木属),红木指的是这红木指的是这 5 属 8 类的心材。


2、红檀香属于红木吗?

红檀香学名香脂木豆,归于香脂木豆属,心材红褐色至紫红褐色,结构甚细而均,木材具有香气。但是红檀香不属于《红木》标准中规定的 5 属 8 类 33 种木材,所以不属于红木范畴。

阅读全文 »

JavaScript 学习笔记:原型与继承

发表于 2019-04-02 | 更新于 2019-07-02
本文字数: 9.3k | 阅读时长 ≈ 17 分钟

原型

每个 JavaScript 中的对象都有一个特殊的内部隐藏属性 [[prototype]],它要么指向 null,要么指向另一个对象,我们称之为原型。当我们从一个对象上读取某个属性,如果在对象本身上没有找到,那么 JavaScript 引擎会尝试从它的原型中去寻找。

原型属性 [[prototype]] 虽然是内部隐藏的属性,但是有一些方法可以获取到它。

__proto__

其中之一是 __proto__,但是 __proto__ 并不完全等同于原型,只是由于历史原因,各个浏览器包括 NodeJS 都部署了这一属性,实际开发中应该使用 ES 规范中的更现代的设置原型的方法,后面会提到。考虑如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
// 代码片段 1
const animal = {
eats: true
};

const rabbit = {
jumps: true
};

rabbit.__proto__ = animal;

console.log(rabbit.jumps); // true
console.log(rabbit.eats); // true

rabbit 对象本身没有 eats 属性,但是因为让它的原型指向了 animal 对象,这时我们可以说 animal 是 rabbit 的原型。所以引擎会在 rabbit 没有某个属性时从其原型 animal 上获取。

阅读全文 »

JavaScript 学习笔记:对象的属性描述符

发表于 2019-04-02 | 更新于 2019-04-24
本文字数: 3.4k | 阅读时长 ≈ 6 分钟

JavaScript 中的对象属性,并不只是简单的键值对,通过属性描述符 property descriptor ,我们可以更加灵活的配置对象属性以控制属性的行为,包括是否可枚举、是否可写、是否可配置,实现更强大的功能。实际上,对于对象而言,一共有 2 种属性:

  • 数据属性 data property
  • 访问属性 accessor property

数据属性

通常我们见到的属性都是这样的:

1
2
3
4
5
// 代码片段 1
const user = {
name: 'Sheldon',
age: 29
};

上面的 name 和 age 都是数据属性。

访问属性

还有另一种形式,比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 代码片段 2
const user = {
name: 'Bill',
surname: 'Gates',
get fullname() {
return `${this.name} ${this.surname}`;
},
set fullname(value) {
[this.name, this.surname] = value.split(',');
}
};

user.fullname // Bill Gates
user.fullname = 'Sheldon Cooper';
user.name // Sheldon

上面的 name 和 surname 是数据属性,fullname 则是访问属性。即凡是使用 get prop() 或者 set prop() 定义的属性,都是访问属性,不再是数据属性。

数据属性的描述符

对于数据属性而言,其描述符由 4 个 flag 组成:

  • value 属性的值
  • writable 是否可写
  • enumerable 是否可枚举,在类似 for...in 遍历中是否忽略
  • configurable 是否可配置,即是否可以编辑描述符的 flag
阅读全文 »

为什么 0.1 + 0.2 !== 0.3

发表于 2019-03-12 | 更新于 2019-05-13
本文字数: 1.3k | 阅读时长 ≈ 2 分钟

close-up-colorful-count

JavaScript 中的数字以 64 位浮点数的格式表示,遵从IEEE 754-1985这一用二进制表示数字的工业标准。其中的 52 位用于分数部分,即存储精度;11 位用于指数部分,即表示小数点的位置;1 位用于符号位,表示正负。如下图所示:

Double Floating Point Format

对于 64 位双精度数字而言,维基百科上给出了如下信息:

  • Width: 64 bits
  • Range at full precision: ±2.23×10e308 to ±1.80×10e308
  • Precision: Approximately 16 decimal digits

即在保证精度不丢失的前提下,64 位浮点数最多能表示 16 位的十进制数,超出这一限制则导致精度丢失。回到标题抛出的问题:0.1 + 0.2 !== 0.3,我们可以试着运行以下代码:

1
2
3
4
5
6
console.log((0.1).toFixed(16))
// 0.1000000000000000
console.log((0.1).toFixed(17))
// 0.10000000000000001
console.log((0.1).toFixed(20))
// 0.10000000000000000555

这进一步说明超过 16 位的十进制数,使用 64 位浮点数的二进制表示会产生精度丢失。与此同时,我们注意到:十进制数 0.1 是无法用二进制来精确表示的,这正如 1 / 3 无法在十进制下用有限位数来精确表示,是一样的道理。这里引出了一个问题,什么样的数字在十进制下无法精确表示?什么样的数字在二进制下无法精确表示?

阅读全文 »

Git Bash 常用命令集锦

发表于 2019-03-12 | 更新于 2020-12-11
本文字数: 1.9k | 阅读时长 ≈ 4 分钟

Git Bash 是将 GNU 开源软件下的命令移植到了 Windows 下面。同时不仅可以使用大部分常用的 linux shell 命令,也集成了部分 Windows 下的命令。比如显示当前目录下的文件和文件夹,ls以及dir都是可用的。下面列出了我在 linux shell 下的常用命令。

路径查找和切换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
pwd
# print working directory, 打印当前工作目录

ls
# list,查看当前目录下的文件,不包括隐藏文件,仅显示文件名称

ls -a
# list all, 查看当前目录下的所有文件,包括隐藏文件

ll(ls -l)
# 查看当前目录下的文件详细信息,包括时间、读写权限等

cd <path>
# change directory, 改变目录,后面尖括号内是目标目录的路径

cd
# 当不加参数时,跳转到设定的默认启动目录

cd ~
# 在 Linux 下面,~ 表示当前用户账户的根目录

cd ..
# 跳转到上一级目录

cd ./project/static
# 跳转到当前目录的下一级目录project/static
阅读全文 »
1…78910
Bill Wen

Bill Wen

less is more
57 日志
70 标签
GitHub
Creative Commons
0%
© 2018 – 2020 Bill Wen | 195k | 5:55
由 Hexo 强力驱动
|
主题 – NexT.Pisces