Bill' Notes

  • 首页

  • 关于

  • 标签

  • projects

  • 归档

  • 搜索

'=='与'==='

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

JavaScript 中有两个用于判断两个值相等的符号:== 和 === 。分两种情况来考虑:基本数据类型和对象。

基本数据类型

对于基本数据类型而言,=== 直接比较两个基本数据类型的值是否相等,不做类型转换,== 会试图进行类型转换再比较。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const s1 = '1'
const s2 = '1'

const n1 = 1
const n2 = 1.0

const b = true

console.log(s1 === s2) // true
console.log(s1 === n1) // false
console.log(s1 == n1) // true
console.log(n1 === n2) // true
console.log(n1 === b) // false
console.log(s1 == b) // true
console.log(n1 == b) // true
阅读全文 »

JavaScript 中的求值策略

发表于 2019-03-05 | 更新于 2019-04-29
本文字数: 1.7k | 阅读时长 ≈ 3 分钟

计算机科学中有个概念,叫做求值策略 Evaluation Strategy。它决定了变量之间,函数的实参与形参之间,值是如何传递的。求值策略主要有以下两种:
按值传递和按引用传递。

按值传递与按引用传递

  • 按值传递(call by value)是最常用的求值策略,函数的形参是被调用时函数实参的副本,修改函数的形参不会影响实参。
  • 按引用传递(call by reference)是另一种求值策略,函数的形参是被调用时函数实参的隐式引用,不再是函数实参的副本,修改函数的形参会相应地影响到实参,因为函数实参传递给函数形参是引用本身。

按引用传递会使函数调用的追踪更加困难,有时也会引起一些微妙的 BUG。按值传递由于每次都需要克隆副本,对一些复杂类型,性能较低。两种传值方式都有各自的问题。首先明确一点,在 JavaScript 中,不存在按引用传递。那么,是不是 JavaScript 中,变量之间,函数形参与实参之间都是按值传递呢?这是一个有些争议的问题,可以近似认为,JavaScript 中的值都是按值传递。下面分基本类型的值和引用类型的值两种情况来看。

阅读全文 »

同源政策与跨域问题

发表于 2019-02-27 | 更新于 2019-05-13
本文字数: 2.1k | 阅读时长 ≈ 4 分钟

cyber-security

同源政策与跨域问题

什么是浏览器的同源政策?

维基百科对同源政策的定义。简单来说,为了保护用户的数据安全,浏览器规定,对于不同源的网页,它们之间以下的资源交互行为是被禁止的:

  1. 持久化数据无法获取,包括 Cookie, LocakStorage, IndexDB
  2. DOM 无法获取
  3. AJAX 请求不能发送

仔细想想,以上 3 种行为对于用户安全来说,都是非常危险的。持久化数据通常含有用户的身份信息、登录态信息;至于 DOM 和 AJAX 这两者的权限都可能导致网页被植入恶意代码。

同源的严格定义

如果说两个网页同源,是指以下 3 个部分都相同:

  • 协议
  • 主机
  • 端口

举例来说,http://www.example.com/dir/page.html 这个网址,协议是 http://,域名是 www.example.com,端口是 80(默认端口可以省略)。它的同源情况如下。

  • http://www.example.com/dir2/other.html:同源
  • http://example.com/dir/other.html:不同源(域名不同)
  • http://v2.www.example.com/dir/other.html:不同源(域名不同)
  • http://www.example.com:81/dir/other.html:不同源(端口不同)
阅读全文 »

生活美学大师的 5 个锦囊

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

Photo by rawpixel.com from Pexels
生活美学大师的 5 个锦囊,让你告别无趣的生活.

  • 给事物排名的乐趣
  • 每年给自己的屋子做点改变
  • 第二天感恩
  • 附身的魔力
  • 看看大街上的镜子

给身边的事物排名

不仅可以提升生活的乐趣,还能提升你的观察能力,总结分析能力。这种做法不是为了争强好胜,而是为了给生活加点调料,增加乐趣。
比如,你可以尝试自己的排名。身边的十大美食,十大书籍,十大电影,十大当地景点等。

每年给自己的屋子做点改变

在阳台上加一盆自己喜爱的盆栽也是一点改变.

第二天感恩

第二天感恩是一个泛指,别人给你推荐了一本好书,或者旅行回来给你带了点小零食,在过了几天或一段时间后,你觉得不错甚至受益匪浅,那么要把这份美好的心情和感激告诉别人。这同时可以增加我们自己的生活乐趣,维持一种好的社交氛围。

附身的魔力

有一个人以前一直害怕坐飞机,后来每次坐飞机都将自己想象成飞行员,以此来克服恐惧心理。

看看大街上的镜子

在街上,通过车窗玻璃,商场镜子等,不时的照照镜子,给自己一个正面、积极的心理暗示。

书籍:《非常非常好》
作者:松浦弥太郎

Sass 快速入门

发表于 2018-05-14 | 更新于 2019-05-13
本文字数: 5.5k | 阅读时长 ≈ 10 分钟

blur-browse-comfort

Sass 快速入门

What is Sass?

Sass 是 CSS 的一个扩展,它使得 CSS 的使用更加优雅和强大

Why Sass?

Sass 的以下特性使得 Sass 成为一个成熟、稳定、强大的 CSS 扩展语言解析器。

变量

变量声明

在 Sass 中,使用 $ 前缀符号来表明这是一个变量。同时,变量是存在作用域的。

1
2
3
4
5
6
7
8
9
10
11
12
$highlight-color: #f90;
nav {
$width: 100px;
width: $width;
color: $highlight-color;
}

/* 编译后 */
nav {
width: 100px;
color: #f90;
}

变量引用

变量可以引用另一个变量

1
2
3
4
$highlight-color: #f90;
.selected {
bodrer: 1px solid $highlight-color;
}
阅读全文 »

关于写日记

发表于 2018-05-04 | 更新于 2019-05-13
本文字数: 2.6k | 阅读时长 ≈ 5 分钟

摘录一篇关于写日志的文章。

写日记是可以加快你的个人成长速度的最简单而又最强大的工具之一。把你头脑中的想法写出来,能让你得到不这样做所无法获得另一种看待事物的视角。

超越你的思维极限

虽然你的大脑可以同时处理许多信息,但你清醒地思考时却做不到。思绪是一个接着一个出现的,是一个序列。一个想法激发下一个想法,如此往复。有时这些序列会产生一些分支,但它们仍然受时间线的限制,在任何给定的时刻,你都追随着这些分支思绪中的一个。这些思绪序列都有一个开始,一个发展,和一个结束,当你陷在一个思绪系列中重复回想这些想法时,要想理清思路是近乎不可能的。

在这个方面,写日记便能给你提供巨大的便利。写日记可以让你从思维序列中解放出来,让你以一个鸟瞰你的想法的视角去审视你的想法。当把你的序列思维复制在一种有形的介质中,你就可以回过头来以一个旁观者的身份回顾这些想法。但当你在复制这些想法时,你仍处于第一人称模式之中。而当你回顾它们的时候,你就能以客观的而非主观的视角看待它们。这种客观的视角,再加上你从主观视角中学到的东西,能让你更进一步地看清你所面对的处境。

写日记的其他好处

下面是写日记的另外 3 种好处:

  • 解决棘手的问题
    当你陷在一种主观的,第一人称的视角时,一些问题是很难得以解决的。只有当你将情景复制下来,然后从一个旁观者的角度重新审视问题时,解决方案才能变得清晰明了。有时问题的解决方法是如此显而易见,以至于连你自己也会为自己当初没有及时想到而感到震惊。
  • 理清思路
    当你思绪混乱,不知该做什么的时候,是非常适合写日记的。你该辞职还是创业?你该和你的现任男/女朋友结婚吗?当你把这些问题写下来,然后再去思考,你对事情就会更有把握。
  • 见证你的进步
    翻出几年前写的日记,看看自己这几年来取得的实质性的进步,是一件无比美妙的事。当你感到沮丧,看不到对明天的希望时,就翻出你在几年前写的日记——这能彻底改变你的观点。即便在你感觉自己似乎在原地踏步的时候,这也能帮助你意识到你其实正在进步、正在改变。
阅读全文 »
1…8910
Bill Wen

Bill Wen

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