资讯专栏INFORMATION COLUMN

javascript 的 quine 程序(升级版)

nidaye / 1246人阅读

摘要:但是,既然我博客的关于页面都已经折腾出升级版了,那么我们就再折腾一个出来。程序的升级版动态的。最后在附赠一个,这个其实不能算是严格的程序可以滚动的地球仪

本文来自我的博客:http://justjavac.com/javascript/2013/10/11/javascript-quine-plus.html

Quine 以哲学家 Willard van Orman Quine (1908-2000) 而命名,在维基百科中她的定义是:

  

一个 quine 是一个计算机程序,它不接受任何输入,且唯一的输出就是自身的源代码。

编写出某个语言中最简短的 quine 通常作为黑客们的消遣,比如下面的 javascript 代码就是一个 quine 程序:

!function $(){console.log("!"+$+"()")}()

网上已经有很多黑客写出了各种各样的 quine 程序,因此我就不再班门弄斧了。 但是,既然我博客的关于页面都已经折腾出升级版了,那么我们就再折腾一个 quine++ 出来。

quine 程序的升级版——动态的 quine。

http://jsfiddle.net/justjavac/RN2PL/

点此查看对比版,注意输出结果的红字部分

通过查看源代码的几个 javascript 关键字可以看出:

setIntervalDate 用来做动态效果

他自己输出了自己,而且 Date 还是动态的:

s = ( "setInterval(z="" // 外层代码
      + z.replace(/["]/g,"$&") // COOL
    + "")" ) // 赋值结束
    .match(/.{1,37}/g).join("
"); // 组装

输出到 document.body.innerHTML,并用

 标签包围起来

动态替换字符串的一部分。

最后在附赠一个,这个其实不能算是严格的 quine 程序:可以滚动的地球仪:

http://jsfiddle.net/justjavac/KbetG/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77941.html

相关文章

  • 一步一步写一个简单js版quine程序

    摘要:感觉挺有意思的,于是打算自己用写一个试试。为有趣起见,准备从一个打印本站域名的额外功能开始这个命令可以在控制栏打印出一行。接下来我准备一步一步改造这个命令,直至达成的目标。注意到源码里外用了不同的引号,这是为了规避转义符。 原文自转->这里 早上看了justjavac大大的一篇文章:javascript 的 quine 程序升级版,了解了一下所谓quine程序的概念: 一个 ...

    AJie 评论0 收藏0
  • 2018AI最佳应用回顾

    摘要:话虽如此,这里列出了过去一年中人工智能和机器学习这个不断发展的世界的一些亮点。需要回应人类并清楚地表达它正在做什么事情。相反,这个团队提出了一个开源替代方案,他们称之为。例如人力资源部门或刑事司法系统。 译者说 AI商业化迅猛发展,即便如此,普通大众对AI仍然缺少专业性、科学性的认识。作者在本文中精选了7篇2018年关于AI应用的文章,并对内容做了简短、启发性的介绍,旨在帮助公众了解A...

    kumfo 评论0 收藏0
  • 在 Angular 8 中,我们可以期待些什么

    摘要:在理想的情况下,我们甚至可以立即将应用程序升级到。于是,在中,我们可以得到些什么正如我们所看到的,的新增特性除之外并不是很亮眼,尽管这些特性非常好用,但对于大多数应用程序来说并不重要。 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 本文由葡萄城翻译并发布 showImg(https://segmentfault.com/img/bVbrk...

    LiveVideoStack 评论0 收藏0

发表评论

0条评论

nidaye

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<