• 如何继承 Date 对象?由一道题彻底弄懂 JS 继承

    Posted by : lon.y@qq.com on 2018年1月30日

    前言 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正。 ———-长文+多图预警,需要花费一定时间———- 故事是从一次实际需求中开始的。。。 某天,某人向我寻求了一次帮助,要协助写一个日期工具类,要求: 此类继承自Date,拥有Date的所有属性和对象 此类可以自由拓展方法 形象点描述,就是要求可以这样: // 假设最终的类是 MyDate,有一个getTest拓展方法 let date = new MyDate(); // 调用Date

    阅读全文...

  • 实现属于自己的TensorFlow(一) – 计算图与前向传播

    Posted by : lon.y@qq.com on 2018年1月30日

    前段时间因为课题需要使用了一段时间TensorFlow,感觉这种框架很有意思,除了可以搭建复杂的神经网络,也可以优化其他自己需要的计算模型,所以一直想自己学习一下写一个类似的图计算框架。前几天组会开完决定着手实现一个模仿TensorFlow接口的简陋版本图计算框架以学习计算图程序的编写以及前向传播和反向传播的实现。目前实现了前向传播和反向传播以及梯度下降优化器,并写了个优化线性模型的例子。 代码放在了GitHub上,取名SimpleFlow, 仓库链接: 

    阅读全文...

  • (a ==1 && a== 2 && a…

    Posted by : lon.y@qq.com on 2018年1月30日

    一个有趣的问题: 在 JavaScript 中, (a ==1 && a== 2 && a==3) 是否有可能为 true ? 这是一道我被某科技公司问到的面试题。发生在两周之前,我仍然在努力寻找答案。 我知道我们从来不会在日常工作中写出这样的代码,但我对问题的答案仍然十分很好奇。 解法一: 利用松散相等运算符 == 的工作原理,你可以简单地创建一个带有自定义toString( 或者 valueOf)函数的对象,在每一次使用

    阅读全文...

  • Linux 下各文件夹的结构说明及用途介绍

    Posted by : lon.y@qq.com on 2018年1月30日

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令。 /dev:设备特殊文件。 /etc:系统管理和配置文件。 /etc/rc.d:启动的配 置文件和脚本。 /home:用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示。 /lib:标准程序设计库,又 叫动态链接共享库,作用类似windows里的.dll文件。 /sbin:系统管理命令,这 里存放的是系统管理员使用的管理程序。 /tmp:公用的临时

    阅读全文...

  • LCS 算法:Javascript 最长公共子序列

    Posted by : lon.y@qq.com on 2018年1月30日

    最长公共子序列(Longest Common Subsequence LCS)是从给定的两个序列X和Y中取出尽可能多的一部分字符,按照它们在原序列排列的先后次序排列得到。LCS问题的算法用途广泛,如在软件不同版本的管理中,用LCS算法找到新旧版本的异同处;在软件测试中,用LCS算法对录制和回放的序列进行比较,在基因工程领域,用LCS算法检查患者DNA连与键康DNA链的异同;在防抄袭系统中,用LCS算法检查论文的抄袭率。LCS算法也可以用于程序代码相似度度量

    阅读全文...

  • webassembly 的那些事

    Posted by : lon.y@qq.com on 2018年1月30日

    简介 JS于1995年问世,设计的初衷不是为了执行起来快。直到08年性能大战中,许多浏览器引入了即时编译 JIT(just-in-time编译器),JavaScript 代码的运行渐渐变快。正是由于这些 JIT 的引入,使得 JavaScript 的性能达到了一个转折点,JS 代码执行速度快了 20 — 50倍。 JIT 是使 JavaScript 运行更快的一种手段,通过监视代码的运行状态,把 hot 代码(重复执行多次的代码)进行优化。通过这种方式,可

    阅读全文...

  • 可视化解释压缩算法的工作原理

    Posted by : lon.y@qq.com on 2018年1月23日

    压缩技术在生活中无处不在,硬盘上存储数据、发送电视信号、网页传输、流媒体、电子游戏……现代计算几乎没有一个重要领域不使用压缩技术。 那么压缩技术到底是什么? 无论你使用过很多年的电脑压缩软件还是从没想过这个问题,本文将尝试解释,当你压缩一个文件或传输一段视频时,其中的数据到底发生了什么变化。我们将探寻这些重要问题的答案,在此过程中,也许会提出一些新的问题。 对被压缩对象进行压缩,意味着什么? 如何能将目标对象变得比原来更小? 如何具体实现压缩技术 让我们来

    阅读全文...

  • 汇编语言入门教程

    Posted by : lon.y@qq.com on 2018年1月22日

    学习编程其实就是学高级语言,即那些为人类设计的计算机语言。 但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。学会高级语言,并不等于理解计算机实际的运行步骤。 计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行。如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言。 汇编语言不容易学习,就连简明扼要的介绍都很难找到。下面我尝试写一篇最好懂的汇编语言教程,解释

    阅读全文...

  • 当你在 Linux 上启动一个进程时会发生什么?

    Posted by : lon.y@qq.com on 2018年1月21日

    本文是关于 fork 和 exec 是如何在 Unix 上工作的。你或许已经知道,也有人还不知道。几年前当我了解到这些时,我惊叹不已。 我们要做的是启动一个进程。我们已经在博客上讨论了很多关于系统调用的问题,每当你启动一个进程或者打开一个文件,这都是一个系统调用。所以你可能会认为有这样的系统调用: start_process(["ls", "-l", "my_cool_directory"]) 这是一个合理的想法,显然这是它在 DOS 或 Windows

    阅读全文...

  • 10分钟理解JS引擎的执行机制

    Posted by : lon.y@qq.com on 2018年1月21日

    深入理解JS引擎的执行机制 1.灵魂三问 : JS为什么是单线程的? 为什么需要异步? 单线程又是如何实现异步的呢? 2.JS中的event loop(1) 3.JS中的event loop(2) 4.说说setTimeout 首先,请牢记2点: (1) JS是单线程语言 (2) JS的Event Loop是JS的执行机制。深入了解JS的执行,就等于深入了解JS里的event loop 1.灵魂三问 : JS为什么是单线程的? 为什么需要异步? 单线程又是

    阅读全文...