learnyounode-functional-javascript

Create at 2015 09 242 min read技术JavaScript

fun 坑爹的 CMD 不知怎么回事,在做到倒数第三道题后突然罢工了,不能选择题目,公司和自己的电脑都是这样。 于是最后三道题还是放弃了,也没精力去找那三道题到底是什么了,就这样吧。

做题的过程中有个需要注意的地方,也是在 js 中一个很常用的方法。 那就是被 setTimeout 延迟的函数会等前面函数彻底执行完以后,才会执行,也就是说可以阻塞 js 的进程。如下:

function repeat(operation, num) {
  // modify this so it can be interrupted
  if (num <= 0) return
  operation()
  setTimeout(function () {
    return repeat(operation, --num)
  }, 0)
}
module.

JavaScript 异步编程

Create at 2015 07 052 min read技术asyncJavaScript

工作中需要实现一个功能,简化一下大概是这么一个逻辑。

bills.getData = function (monthNow) {

    //DONE Get data of monthNow.
    //url = 通过 monthNow 来决定 url 地址
    var url = "api/data.json";

    //noinspection JSUnusedGlobalSymbols
    $.ajax({
        url: url,
        dataType: "json",
        type: "GET",
        success: function (d) {
            Data = d;
        },
        error: function (d) {
            window.console.log("error");
        }
    });
	return Data
};

data = bills.getData(month

learnyounode

Create at 2015 06 1123 min read技术nodeJavaScript

Learn You The Node.js For Much Win! learnyounode 花了几天业余时间做完这个 Node.js 入门的题目,梳理一下知识点。

HELLO WORLD

编写一个程序,在终端(标准输出 stdout)打印出 "HELLO WORLD"。

学习一门语言的最好方法就是先写一个 Hello Wolrd 程序。这道题很简单,每个人都会。

console.log("HELLO WORLD")

BABY STEPS

编写一个简单的程序,使其能接收一个或者多个命令行参数,并且在终端(标准输出 stdout)中打印出这些参数的总和。

接受的参数可以通过 process.argv

js函数表达式和函数声明的区别

Create at 2015 02 092 min read技术JavaScript

JavaScript中的两种函数定义方式:

函数表达式:

var foo = function(){
	conlose.log('Message');
};

函数声明:

function foo(){
	console.log('Message');
};

两种方法都可以定义一个相同的函数,但是却有一些区别:

函数表达式中:

var foo和一般的var定义的变量一样被提到了函数或脚本顶部,但是函数体却还是在原来的地方。所以必须在函数体后调用函数。

var foo = function(){
	console.log('Message');
};
foo() 	// 输出结果为'Message'

foo();
var foo = function(){
	console.log('Messag

jQuery插件-changeBg

Create at 2015 02 081 min read技术JavaScriptjQuery

把上篇博客中写的 jQuery 题改进了一下,做成了一个新插件ChangeBg。 可以给某标签下的所有奇数行的子元素(注意:是子元素,而非后代元素)设置背景颜色,同时给所有子元素添加鼠标移入移出时更改背景和字体颜色的事件。

  • bgCol 奇数行要设置的背景颜色,默认为'#EEE'
  • chBgCl 鼠标移入时背景颜色,默认为'#0066CC'
  • chCol 鼠标移入时的字体颜色,默认为'#FFF'

下载请点我

前端面试题(1)

Create at 2015 02 068 min read技术面试题JavaScript

在群里有人分享了一套试题,拿来练练手。

1、请用 HTML5 标准完成以下布局

图1

HTML:
	<header>HEADER</header>
	<nav>NAV</nav>
	<aside>ASIDE</aside>
	<section>SECTION</section>
	<footer>FOOTER</footer>
CSS:
	body{
		color: white;
		font-size: 14px;
		text-align: center;
	}
	header{
		background-color: black;
	}
	nav{
		background-color: gray;
	}
	aside{
		width: 30%;
		height: 2

elefixed

Create at 2015 01 221 min read技术JavaScriptjQuery插件

写了一款js插件,可以让一个元素在随着页面向下滚动到达浏览器顶部时,固定在那,向上滚动时又回到原来的状态。 具体介绍可以点击这里查看:eleFixed 本插件提供原生jsjQuery两个版本: 使用方法:

  • 原生 js 版:首先在 html 中引入 elefixed.js 文件,然后这样调用它:elefixed("ele");,其中的"ele"可以换为你要设置元素的 id。
  • jQuery 版:直接在元素后面调用该方法即可,像这样$("ele").elefixed(),这里的"ele"不再像原生版一样需要 id 值了,只要能选中该元素即可。

下载地址:

借助gulp自动化前端开发

Create at 2015 01 183 min read技术gulp前端JavaScript

gulp是一款小巧的自动化构建工具,可以帮助我们自动运行大量乏味重复性的任务,比如代码压缩、合并等等,可以为我们节约大量的时间。在制作简历过程中,因为需要用到less,而less需要编译,所以就简单学习了这款工具。

安装 Gulp.js

因为gulp基于node构建,所以必须先装上node。安装好node后,通过npm来安装gulp

    npm install -g gulp

在项目中配置

因为我需要编译less,所以先要安装gulpless插件:

Read more

知乎前端面试题解答

Create at 2015 01 156 min read技术前端JavaScript面试题

第一题:请使用 Javascript 实现以下动态效果

可以使用任何你喜欢的方式和库,尽量使用你认为优雅的实现,并在代码完成说简要说明此方案的优点和不足。 这是我用原生js实现的,用到了input标签的readonly属性,实现如下:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>第一题</title>
    <style>
      body {
        width: 900px;
        margin: 0 auto;
        line-height: 30px;
      }
      a {
        text-decoratio