javascript - 官方30行js比赛:30行js你能做出什么?
怪我咯
怪我咯 2017-04-10 13:08:46
0
26
2680

国外社区的30行js小比赛是不是让你按捺不住 跃跃欲试了呢骚年! 你的机会来了~
由 segmentfault 主办的
30行 原生javascript 编程比赛
等待你狂拽酷炫吊炸天的效果

  1. 我们推荐使用 jsfiddle.net runjs.cn 在线编辑器,将代码链接贴在本贴下即可
  2. 比赛的评比标准是 社区小伙伴们的投票数;代码行数在30行左右
  3. 比赛时间为期两周
  4. 奖项设置,我们为得赞数目最高的前三名同学准备神秘的小奖品以及SF的纪念T恤
  5. 当然你也可以简短的给自己的作品设计一下 slogan,简单阐述你的创意
  6. 活动过程中,有发现任何作弊和抄袭代码的行为,将会被取消评选资格

最新提示:得票最高前三名用户将分别获得又拍云提供的1000元代金券!前五名将获得SF的纪念T恤!

骚年们,准备好了嘛?等你来挑战!!!


范例:

30行JavaScript代码(仅975字节)写出的一个功能完整的递归光线跟踪程序

http://jsfiddle.net/vz5aZ/2/

怪我咯
怪我咯

走同样的路,发现不同的人生

Antworte allen(26)
大家讲道理

生成一個足夠安全同時相對好記(如果你的英語詞彙量足夠大的話)的密碼。

靈感來自 這則xkcd漫畫。

30行好難寫啊!寫了半天沒寫滿,加了註釋還是不滿30行。
沒辦法,只好再補一個python的版本填滿30行。

// by Jakukyo Friel <weakish@gmail.com>
// under Apache License v2

// Yet another random passphrase generator.
// Inspired by http://xkcd.com/936/
// But I use 5 words instead of 4, since 5 words will achieve an entropy of
//    log(99171)/log(2)*5 = 82.988
// This is enough.
// NIST recommends 80-bits for the most secure passwords.


var fs = require('fs');
var pickrand = require('pickrand')
var wordlist = fs.readFileSync('/usr/share/dict/words').toString().split("\n");

generate_random_passwd = function() {
  pickrand(wordlist)
  for (var i=0;i<5;i++) {
    // Avoid characetr `'` in passphrase, since some broken^W websites does not support it.
    process.stdout.write(pickrand(wordlist).replace(/'/g, '').replace(/\n$/, ''))
  };
};

generate_random_passwd()

// A python version I wrote before. (To fill 30 lines.)
// import random
// wordlist = open('/usr/share/dict/words').readlines()
// pick = lambda : random.choice(wordlist)
// for i in range(5): print(pick().replace('\'', '').strip(), end='')

使用方法:

將上述代碼保存爲文件,比如generate_pass.js,然後node運行即可:

node generate_pass.js

依賴:

  • pickrand模塊,可用 npm install pickrand安裝。
  • 因爲供抽取的詞彙來自系統自帶的詞典,所以需要在unix系統上運行。
大家讲道理

30我写不出来,我写了个300行的消灭星星
http://jsfiddle.net/hankerstudio/ezyg8/3

黄舟
    //github: https://github.com/myworld4059/tmpl.js
    //实现一个js模板引擎,带缓存 

    exports = function (str, data) {
        var $ = '$' + (+ new Date)
            , fn = function (data) {
                var i, variable = [$], value = [[]];
                for (i in data) {
                    variable.push(i);
                    value.push(data[i]);
                }
                return (new Function(variable, fn.$))
                    .apply(data, value).join("");
            };

        //将模板解析成函数
        fn.$ = fn.$ || $ + ".push('"
            + str.replace(/\\/g, "\\\\")
            .replace(/[\r\t\n]/g, " ")
            .split("[#").join("\t")
            .replace(/((^|#])[^\t]*)'/g, "$1\r")
            .replace(/\t=(.*?)#]/g, "',$1,'")
            .split("\t").join("');")
            .split("#]").join($ + ".push('")
            .split("\r").join("\\'")
            + "');return " + $;

        //如果未定义data则返回编译好的函数,使用时直接传入数据即可,
        //省去每次解析成函数的时间
        return data ? fn(data) : fn;
    };
刘奇

http://runjs.cn/detail/yiku7anr
连续的自由落体

伊谢尔伦
    /*
        2013/11/27
        beijing
        windy!!!!!!!!!!!!!!!!!!!!!!!!!

        Not suitable for writing code
    */

    // do nothing...

巴扎黑
document.write('<iframe src="http://www.baidu.com" width="100%" height="100%"></iframe>');//别说30行,我1行代码就写一个百度出来
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage