最新 | 最热门 | 最高评价

+0  从Java和JavaScript来学习Haskell和Groovy(类型系统)

Tag: Programming Paradigm | Groovy | Haskell | Java | JavaScript | 类型
四火 发于 2015年04月19日 14:31 | 点击: 1775 | 展开摘要
接上文《从Java和JavaScript来学习Haskell和Groovy(引子)》。

首先搞清几个概念:

动态类型(Dynamic Typing)和静态类型:区别的核心在编译期还是运行时。静态类型的语言系统在编译期就明确知道每一个变量的类型,如果发现不合法的类型赋值就在编译期报错;动态类型则直到运行时才会报错。

类型推导(Type Inference),类型推断是指可以在上下文中,编译器来推导实际的类型,也就是代码使用隐式类型指定。比如一个简简单单的“var

查看全文: http://www.udpwork.com/item/14114.html

+0  从Java和JavaScript来学习Haskell和Groovy(引子)

Tag: Programming Paradigm | Groovy | Haskell | Java | JavaScript
四火 发于 2015年04月12日 13:51 | 点击: 2082 | 展开摘要
我记得刚接触计算机的时候,我就受到了两个非常巨大的错误观念的影响,这个观念最初是来自于老师的传授还是学长的教诲已经记不清了,但是直到我工作几年以后,才慢慢有了实际的体会:

学习和使用什么编程语言不重要,重要的是算法和设计;

程序员学习的精髓是面向对象的设计模式,掌握以后,一通百通。

简直就是是胡扯啊。也许在某个极其狭隘的上下文中还能这样说,但是泛泛而谈,这样的态度无疑是误人子弟的。

就说第一条,编程语言不但重要,而且太重要了。换句话说,学习一门新的编程语言,可能学习的

查看全文: http://www.udpwork.com/item/14089.html

+0  尾调用优化

Tag: JavaScript
阮一峰 发于 2015年04月10日 11:34 | 点击: 1560 | 展开摘要
尾调用(Tail Call)是函数式编程的一个重要概念,本文介绍它的含义和用法。

一、什么是尾调用?

尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。

function f(x){
return g(x);
}

上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。

以下两种情况,都不属于尾调用。

// 情况一
function f(x){
let y = g(x);
return y;
}

// 情况二
func

查看全文: http://www.udpwork.com/item/14081.html

+0  React 入门实例教程

Tag: JavaScript
阮一峰 发于 2015年03月31日 15:10 | 点击: 2168 | 展开摘要
现在最热门的前端框架,毫无疑问是 React 。

上周,基于 React 的 React Native 发布,结果一天之内,就获得了 5000 颗星,受瞩目程度可见一斑。

React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。

由于 React 的设计思想极其独特,属于革命性创新,性能出众,代

查看全文: http://www.udpwork.com/item/14042.html

+0  JavaScript 有多灵活?

Tag: JavaScript
阮一峰 发于 2015年02月10日 14:53 | 点击: 1817 | 展开摘要
JavaScript 是一种灵活的语言,表达力极强,我来举一个例子,保证让很多人大吃一惊。

本文受到了 Kyle Simpson 的文章《Iterating ES6 Numbers》的启发。

首先,在 Number.prototype 对象上,部署一个 add 方法。

Number.prototype.add = function (x) {
return this + x;
};

上面代码为 Number 的实例定义了一个 add 方法。(如果你对这种写法不熟悉

查看全文: http://www.udpwork.com/item/13844.html

+0  强类型 JavaScript 的解决方案

Tag: JavaScript
阮一峰 发于 2015年02月08日 13:10 | 点击: 1675 | 展开摘要
JavaScript 是一种弱类型(或称动态类型)语言,即变量的类型是不确定的。

x = 5; // 5
x = x + 'A'; // '5A'

上面代码中,变量x起先是一个数值,后来是一个字符串,类型完全由当前的值决定,这就叫弱类型。

弱类型的好处是十分灵活,可以写出非常简洁的代码。但是,对于大型项目来说,强类型更有利,可以降低系统的复杂度,在编译时就发现类型错误,减轻程序员的负担。

一直有人尝试,让 JavaScript 变成强类型语言。在官方最终支持强类型之前

查看全文: http://www.udpwork.com/item/13838.html

+0  Unicode与JavaScript详解

Tag: JavaScript
阮一峰 发于 2014年12月11日 13:45 | 点击: 1903 | 展开摘要
上个月,我做了一次分享,详细介绍了Unicode字符集,以及JavaScript语言对它的支持。下面就是这次分享的讲稿。

一、Unicode是什么?

Unicode源于一个很简单的想法:将全世界所有的字符包含在一个集合里,计算机只要支持这一个字符集,就能显示所有的字符,再也不会有乱码了。

它从0开始,为每个符号指定一个编号,这叫做"码点"(code point)。比如,码点0的符号就是null(表示所有二进制位都是0)。

U+0000 = null

上式中,U+表示

查看全文: http://www.udpwork.com/item/13623.html

+0  JavaScript 运行机制详解:再谈Event Loop

Tag: JavaScript
阮一峰 发于 2014年10月08日 21:11 | 点击: 2346 | 展开摘要
一年前,我写了一篇《什么是 Event Loop?》,谈了我对Event Loop的理解。

上个月,我偶然看到了Philip Roberts的演讲《Help, I'm stuck in an event-loop》。这才尴尬地发现,自己的理解是错的。我决定重写这个题目,详细、完整、正确地描述JavaScript引擎的内部运行机制。下面就是我的重写。

进入正文之前,插播一条消息。我的新书《ECMAScript 6入门》出版了(版权页,内页1,内页2),铜版纸全彩印刷,非常精

查看全文: http://www.udpwork.com/item/13361.html

+0  前端模块管理器简介

Tag: JavaScript
阮一峰 发于 2014年09月14日 10:13 | 点击: 1827 | 展开摘要
模块化结构已经成为网站开发的主流。

制作网站的主要工作,不再是自己编写各种功能,而是如何将各种不同的模块组合在一起。

浏览器本身并不提供模块管理的机制,为了调用各个模块,有时不得不在网页中,加入一大堆script标签。这样就使得网页体积臃肿,难以维护,还产生大量的HTTP请求,拖慢显示速度,影响用户体验。

为了解决这个问题,前端的模块管理器(package management)应运而生。它可以轻松管理各种JavaScript脚本的依赖关系,自动加载各个模块,使得网页结

查看全文: http://www.udpwork.com/item/13242.html

+0  《ECMAScript 6入门》上线了

Tag: JavaScript
阮一峰 发于 2014年04月30日 12:36 | 点击: 2520 | 展开摘要
过去的一个月,我写了一本书《ECMAScript 6入门》,今天上线了。

网址:es6.ruanyifeng.com

ES6是JavaScript语言的下一个版本,预计将在2014年底正式发布。它对JavaScript做了大量改造,提高了灵活性和应用性,使得这门语言真正成为了企业级开发工具。

但是,ES6也使得JavaScript变得更抽象、更难学了。我把自己过去一年的学习笔记,做成了这本书,采用创意共享开源许可证,源码放在Github上面。欢迎大家访问,多提宝贵意见

查看全文: http://www.udpwork.com/item/12194.html

+0  Firefox中“max-width:100%”不兼容问题

Tag: CSS | 浏览器兼容 | JavaScript
youngsterxyf 发于 2014年04月28日 00:00 | 点击: 4833 | 展开摘要
这个博客是基于“Pelican + Markdown +
定制的my-gum主题”的。定制的主题将博文正文页面的
右边栏去掉,这导致在Firefox等浏览器中,正文中大的图片会突破正文块的宽度,高度也得不到限制,显示效果非常差。

其原因是:Markdown的图片区块元素![Alt
text](/path/to/img.jpg)渲染成HTML元素的结果为 -

<p>
<img src="/path/to/img.jpg" alt

查看全文: http://www.udpwork.com/item/12188.html

+0  undefined与null的区别

Tag: JavaScript
阮一峰 发于 2014年03月28日 11:13 | 点击: 1917 | 展开摘要
大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil。

有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和null。这是为什么?

一、相似性

在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。

var a = undefined;

var a = null;

上面代码中,a变量分别被赋值为undefi

查看全文: http://www.udpwork.com/item/12026.html
|<<<3456789>>>| 一共22页, 254条记录