<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://www.michaeltan.org/</id><title>Michael's backyard</title><subtitle>Michael's personal blog</subtitle> <updated>2024-06-24T22:59:28+08:00</updated> <author> <name>Michael Tan</name> <uri>https://www.michaeltan.org/</uri> </author><link rel="self" type="application/atom+xml" href="https://www.michaeltan.org/feed.xml"/><link rel="alternate" type="text/html" hreflang="zh-CN" href="https://www.michaeltan.org/"/> <generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator> <rights> © 2024 Michael Tan </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>诗酒趁年华</title><link href="https://www.michaeltan.org/posts/at-the-start-of-2024/" rel="alternate" type="text/html" title="诗酒趁年华" /><published>2024-01-06T19:30:00+08:00</published> <updated>2024-01-06T19:30:00+08:00</updated> <id>https://www.michaeltan.org/posts/at-the-start-of-2024/</id> <content src="https://www.michaeltan.org/posts/at-the-start-of-2024/" /> <author> <name>Michael Tan</name> </author> <category term="杂感" /> <summary>今年朋友圈出现了好多年终总结之类的小作文，当然还要附以年度九图或者是所谓“人生照片”。我本来在这一年也有挺多可以写的，但是奈何工作上要我出一篇报告交上去，属实是在岁末丧失了再给自己写一篇随笔的欲望。几日过后，想写作的冲动还是按耐不住，非常想写一点什么。最直接的原因是周五偶然刷到一位B站up主的视频。up主叫做路迪–，照他自己说他是一位985院校毕业，现年30岁的男生，在大城市的世界500强内卷8年后，决定到大理的咖啡馆进行一个躺平的生活。说到这里我插一句，这个躺平与深圳三和大神的躺平是有本质区别的，他有一篇自己的视频介绍了这点（真正的躺平是站着的）。 一连看了好些他的视频，真的感觉他的精神状态蛮棒的。反观下自己，至少11、12月真的就和up主想逃离的状态一样：加班、回到出租屋感觉被掏空，周末睡觉就占据大半，也不想怎么在周末学习充电了。但是现在又还好，熬过了上线前的匆忙，又似乎慢慢地...</summary> </entry> <entry><title>es6中的字符串扩展</title><link href="https://www.michaeltan.org/posts/string-extension/" rel="alternate" type="text/html" title="es6中的字符串扩展" /><published>2023-08-02T11:00:00+08:00</published> <updated>2023-08-02T11:00:00+08:00</updated> <id>https://www.michaeltan.org/posts/string-extension/</id> <content src="https://www.michaeltan.org/posts/string-extension/" /> <author> <name>Michael Tan</name> </author> <category term="前端" /> <summary>字符的Unicode表示法 在\u0000~\uFFFF之间的字符可以直接表示，超出该范围的可以采用双字节或大括号的形式表示。 &amp;quot;\u{20BB7}&amp;quot; // &amp;quot;𠮷&amp;quot; &amp;quot;\u{41}\u{42}\u{43}&amp;quot; // &amp;quot;ABC&amp;quot; let hello = 123; hell\u{6F} // 123 &amp;#39;\u{1F680}&amp;#39; === &amp;#39;\uD83D\uDE80&amp;#39; // true 字符串的遍历器接口 在 ES6 中，可以通过for...of来遍历字符串。它最大的优点是可以识别大于0xFFFF的码点，传统基于Array.length的for循环无法识别这样的码点。 let text = String.fromCodePoint(0x20BB7); for (let i = 0; i &amp;amp;lt; text.length; i++) { console.log(text[i])...</summary> </entry> <entry><title>es6中的变量解构赋值</title><link href="https://www.michaeltan.org/posts/destructuring/" rel="alternate" type="text/html" title="es6中的变量解构赋值" /><published>2023-08-02T09:00:00+08:00</published> <updated>2023-08-02T09:00:00+08:00</updated> <id>https://www.michaeltan.org/posts/destructuring/</id> <content src="https://www.michaeltan.org/posts/destructuring/" /> <author> <name>Michael Tan</name> </author> <category term="前端" /> <summary>数组的解构赋值 本质上来说属于“模式匹配”，只要等号两边的模式相同，左边的变量就会被赋予对应的值。 let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar // 2 baz // 3 let [ , , third] = [&amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot;, &amp;quot;baz&amp;quot;]; third // &amp;quot;baz&amp;quot; let [x, , y] = [1, 2, 3]; x // 1 y // 3 let [head, ...tail] = [1, 2, 3, 4]; head // 1 tail // [2, 3, 4] let [x, y, ...z] = [&amp;#39;a&amp;#39;]; x // &amp;quot;a&amp;quot; y // undefined z // [] 如果解构不成功，那么变量的值等于undefined。 let [foo] = []; let [bar...</summary> </entry> <entry><title>es6中的let与const关键字</title><link href="https://www.michaeltan.org/posts/let-and-const-keywords/" rel="alternate" type="text/html" title="es6中的let与const关键字" /><published>2023-07-31T09:00:00+08:00</published> <updated>2023-08-23T00:22:35+08:00</updated> <id>https://www.michaeltan.org/posts/let-and-const-keywords/</id> <content src="https://www.michaeltan.org/posts/let-and-const-keywords/" /> <author> <name>Michael Tan</name> </author> <category term="前端" /> <summary>本篇是在系统性学习阮一峰的 ECMAScript6 入门所作的笔记。 let关键字 ES6 新增了let命令，用来声明变量。它的用法类似于var，但是所声明的变量，只在let命令所在的代码块内有效。用var声明的变量存在“变量提升”，即在变量声明前可以被使用，值为undefined。但是let不存在变量提升，声明前使用会抛出错误ReferenceError。只要块级作用域内存在let命令，它所声明的变量就“绑定”（binding）这个区域，不再受外部的影响。 for循环的计数器，就很合适使用let命令 for (let i = 0; i &amp;amp;lt; 3; i++) { let i = &amp;#39;abc&amp;#39;; console.log(i); } // abc // abc // abc for循环还有一个特别之处，就是设置循环变量的那部分是一个父作用域，而循环体内部是一...</summary> </entry> <entry><title>软考笔记 - 案例分析</title><link href="https://www.michaeltan.org/posts/case-analysis/" rel="alternate" type="text/html" title="软考笔记 - 案例分析" /><published>2023-04-15T17:00:00+08:00</published> <updated>2023-05-17T10:00:21+08:00</updated> <id>https://www.michaeltan.org/posts/case-analysis/</id> <content src="https://www.michaeltan.org/posts/case-analysis/" /> <author> <name>Michael Tan</name> </author> <category term="软考" /> <summary>系统规划 主题内容： 系统规划 费用的成本类型 成本效益分析计算 例题考点： 软件项目的可行性分析概念 经济可行性：项目的建设成本、运行成本和项目建成后可能的经济收益 技术可行性：信息系统需要实现的功能和性能，以及技术能力约束 法律可行性：从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性 用户使用可行性：从信息系统用户的角度来评估系统的可行性，与企业现行制度是否结合，是否方便员工使用 开发成本和运营成本、有形收益和无形收益之间的辨析 净现值计算相关（注意记得加上开发成本） 静态投资回收期：不折现的情况下，考虑收益与投资相同的年份 动态投资回收期：折现计算收益与投资相同的年份 投资收益率：折现总收益/折现总投资，年均收...</summary> </entry> </feed>
