A re-introduction to JavaScript*
https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript
Why a re-introduction? Because JavaScript is notorious for being the world's most misunderstood programming language. While often derided as a toy, beneath its deceptive simplicity lie some powerful language features, one that is now used by an incredible number of high-profile applications, showing that deeper knowledge of this technology is an important skill for any web or mobile developer.
The [real] problem with JavaScript
https://medium.com/unhandled-exception/the-real-problem-with-javascript-6b78cad97b6e
https://medium.com/@wob/the-sad-state-of-web-development-1603a861d29f
讨论 JS 、Web 开发、前端生态,起因是第2篇文章,观点挺偏激的,引发了激烈地讨论,不过的确指出了 Web 生态圈面临的一些问题。第1篇文章比较中肯,作者也在试图建立一个知识库来解决技术选型问题,这是他采集信息的一个调研: Should I Use。这两个文章还引申出两个有意思的东西:Magpie Developer、The programming language cycle
The Single Biggest Mistake Programmers Make Every Day
https://medium.com/javascript-scene/the-single-biggest-mistake-programmers-make-every-day-62366b432308
I believe the single biggest mistake that every programmer makes from time to time is overcomplicating things. Simplify your code. Start with the least complicated implementation and work your way toward more complex solutions only when the problem demands it.
Remember:
- Keep It Stupid Simple (KISS)
- Make it work, make it right, make it fast.
- Understand the problem. (Know what “make it work” means.)
- Begin at the beginning.
- Start with tests.
- Do One Thing (DOT).
- Start small and iterate.
- Pure function > Function > Factory > Class
Simple beats clever every day of the week.
How do Promises Work?
http://robotlolita.me/2015/11/15/how-do-promises-work.html
In this blog post we’ll look at what promises are, how they work, and why you should or shouldn’t use them.
- JSX JSX is a statically-typed, object-oriented programming language designed to run on modern web browsers.
- TypeScript
- CoffeeScript 增强了JavaScript的简洁性与可读性,但对 js 改造太大,并不适合在大团队使用
- ELM the best of functional programming in your browser
一些专注于 Web 应用如何开发的框架
- cycle.js A functional and reactive JavaScript framework for cleaner code
- vuejs Vue.js is a library for building interactive web interfaces.
It provides data-driven components with a simple and flexible API. - wayjs Simple, lightweight, persistent, framework-agnostic two-way databinding Javascript library (with no to little JS code to write).
- http://t3js.org/
- https://github.com/hyperapp/hyperapp
Strudel.js
http://strudeljs.org/
Strudel (/ˈstruːd(ə)l/) is a lightweight component framework. Declarative API is introduced thanks to Angular-style decorators. Main target for Strudel are interactive websites, not especially web applications, as there are plenty frameworks that solves apps problems nicely (React, Angular, Vue). On the other hand Strudel biggest goal is to provide great way of writing interactive bits on pages like tabs, accordions and carousels in server-side rendered websites. It’s time to get rid of jQuery and start writing modern and lightweight code.
- jsonform 文档非常好,对标准化的支持也不错
- Easy Forms for jQuery: Alpaca 重量级的类库,功能很强,但可集成度比 jsonform 低
- Handsontable: Handsontable is a minimalistic Excel-like data grid editor for HTML, JavaScript & jQuery
- jCarousel Lite : jCarousel Lite is a jQuery plugin that carries you on a carousel ride filled with images and HTML content. Put simply, you can navigate images and/or HTML in a carousel-style widget. It is super light weight, at about 2 KB in size, yet very flexible and customizable to fit most of our needs.
mobile webapp :
- Ionic : Create amazing apps The beautiful, open source front-end framework for developing hybrid mobile apps with HTML5.
- Onsen UI : The Answer to PhoneGap UI Development. A Custom Elements-Based HTML5 UI Framework.
- Webix : Build rich UI in a few lines of code.
- Sencha Touch
- Kendo UI : Everything you need to build sites and apps with pure JavaScript and HTML5.
- https://github.com/makeusabrew/bootbox Bootbox.js is a small JavaScript library which allows you to create programmatic dialog boxes using Bootstrap modals
- https://github.com/hubspot/vex Vex is a modern dialog library which is highly configurable, easily stylable, and gets out of the way.
pc :
- Egret Engine : Egret Engine(白鹭引擎)是一款使用TypeScript语言构建的开源免费的移动游戏引擎。白鹭引擎的核心定位是开放,高效,优雅。通过它,你可以快速地创建HTML5类型的移动游戏,也可以将游戏项目编译输出成为目标移动平台的原生游戏应用。
- Turbulenz Engine : Turbulenz is an HTML5 game engine and server-side APIs available in JavaScript and TypeScript for building and distributing 2D and 3D games that run on platforms that support HTML5 features such as modern browsers without the need for plugins.
- Vanilla JS Vanilla JS is a fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications.
- Parsing URLs in JavaScript
- URI.js
- MetricsGraphics.js
- https://github.com/ottomao/bugfreejs 佛祖保佑,永无bug
- http://peeinears.github.io/MagicEye.js/
- opentype.js opentype.js is a JavaScript parser and writer for TrueType and OpenType fonts. 字体变成路径
- https://github.com/aui/font-spider/
- Fetch is the new XHR
Sigma.js: a JavaScript library for graph drawing
http://sigmajs.org/
Sigma is a JavaScript library dedicated to graph drawing. It makes easy to publish networks on Web pages, and allows developers to integrate network exploration in rich Web applications.
Plotly.js - JavaScript library for scientific interactive charts
https://plot.ly/javascript/open-source-announcement/
https://github.com/plotly/plotly.js/
Today, Plotly is announcing that we have open-sourced plotly.js, the core technology and JavaScript graphing library behind Plotly’s products (MIT license). It's all out there and free. Any developer can now integrate Plotly’s library into their own applications unencumbered. Plotly.js supports 20 chart types, including 3D plots, geographic maps, and statistical charts like density plots, histograms, box plots, and contour plots.
http://jeff-collins.github.io/ment.io/ Mentions and Macros for Angular
http://www.duktape.org/
http://cylonjs.com/
WebODF
http://webodf.org/
WebODF is a JavaScript library that makes it easy to add Open Document Format (ODF) support to your website and to your mobile or desktop application. It uses HTML and CSS to display ODF documents.
dhtmlx
http://dhtmlx.com/
A cross-browser JavaScript library for building rich Web and Mobile apps
Webix
http://webix.com/
Webix provides a great number of JavaScript UI widgets with a pefect look and feel great on various devices. All of them can be effortlessly customized in accordance with your preferences thanks to the rich and clear API.
ProseMirror 1.0
http://marijnhaverbeke.nl/blog/prosemirror-1.html
ProseMirror is a Web interface component, and though some of the challenges it tackles are specific to the strengths and (especially) weaknesses of the Web platform, don't think of it as another TinyMCE alternative. Rather, it is a more general take on rich text editing that happens to be implemented in JavaScript for the browser.
Slate.js
https://github.com/ianstormtaylor/slate
Slate lets you build rich, intuitive editors like those in Medium, Dropbox Paper or Canvas—which are becoming table stakes for applications on the web—without your codebase getting mired in complexity. It can do this because all of its logic is implemented with a series of plugins, so you aren't ever constrained by what is or isn't in "core". You can think of it like a pluggable implementation of contenteditable built on top of React and Immutable. It was inspired by libraries like Draft.js, Prosemirror and Quill.
bootstrap-wysihtml5
http://jhollingworth.github.io/bootstrap-wysihtml5/
Simple, beautiful wysiwyg editors bootstrap-wysihtml5 is a javascript plugin that makes it easy to create simple, beautiful wysiwyg editors with the help of wysihtml5 and Twitter Bootstrap
相近的: http://mindmup.github.io/bootstrap-wysiwyg/
TinyMCE
http://www.tinymce.com/
TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL. TinyMCE has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.
http://demos.telerik.com/kendo-ui/
Zone.js
https://github.com/angular/zone.js
Implements Zones for JavaScript, inspired by Dart. A Zone is an execution context that persists across async tasks. You can think of it as thread-local storage for JavaScript VMs.
这个库会在 angular 2.0 中使用。
json-server
https://github.com/typicode/json-server
Get a full fake REST API with zero coding in less than 30 seconds (seriously)
codekit
babel
http://babeljs.io/
Babel is a JavaScript compiler. Use next generation JavaScript, today.
JSPM
jspm is a package manager for the SystemJS universal module loader, built on top of the dynamic ES6 module loader
基于浏览器内核的一些工具,可用在测试、竞品等环节
- node-webkit
- p5js
- Grunt and RequireJS are out, it’s all about Gulp and Browserify now
- No more JS frameworks
- 详解this 原文
- HAXE Haxe is an open source toolkit based on a modern, high level, strictly typed programming language, a cross-compiler, a complete cross-platform standard library and ways to access each platform's native capabilities.
- 国外优秀JavaScript资源推荐
- 7GUIs 7GUIs is a GUI programming usability benchmark
- highlight.js
- Web缓存基础:术语、HTTP报头和缓存策略