0

0

JavaScript 很少为人所知的玩法

黄舟

黄舟

发布时间:2017-02-21 11:23:48

|

1430人浏览过

|

来源于php中文网

原创


Stack OverFlow 的联合创始人杰夫·阿特伍德(Jeff Atwood)曾提出著名的“Atwood定律”,即:

Any application that can be written in JavaScript, will eventually be written in JavaScript.

任何能够用 JavaScript 实现的应用,最终都必将用 JavaScript 实现。

毫无疑问,JavaScript 已然成为当下最流行的编程语言之一,这点已经不需要争论了,不服的话前后端乃至全栈工程师肯定跟你急。最近, hackereart 就发表过一篇博文,文中描述了2016年主流编程语言的使用情况: JavaScript 很少为人所知的玩法JavaScript 很少为人所知的玩法JavaScript 很少为人所知的玩法JavaScript 很少为人所知的玩法

立即学习Java免费学习笔记(深入)”;

他们因此预测今年最流行的语言将会是:

  • JavaScript

  • Java

  • Python

  • PHP

  • Matlab

  • Arduino

  • Swift

作为编程语言界的当红辣子鸡,JavaScript 已将其触角延伸到了很多领域,变换出了很多新奇的玩法,下面的内容我试图探索一些 JavaScript 很少为人所知的玩法:

Espruino

Espruino 是一个专门为微控制器(MCU)设计的 JavaScript 解释器,最低资源开销 128KB Flash & 8KB RAM,使用 MPL-2.0 协议开源。

作者 Gordon Williams 简直就是个全才,最近还设计了一款硬件 Puck.js 来支持 Espruino。

在这位巨人的肩膀上,我做了一些修改,让其能够兼容我自己开发的硬件,修改后的代码我已经提交 GitHub 了,感兴趣的小伙伴可以克隆下来玩玩。

Star

$ git clone http://www.php.cn/
$ cd Espruino

# 将 YS-Beacon 连接至 PC
$ YS_BEACON=1 RELEASE=1 make flash

# 终端跳出一大堆字符,板子上的蓝色灯闪烁,最后一切轻松搞定~
...
[====================] 100%
DEBUG:root:reset stop on Reset  
INFO:root:Programmed 446464 bytes (109 pages) at 14.56 kB/s  
DEBUG:root:uninit board <pyOCD.board.mbed_board.MbedBoard object at 0x1025e8a90>  
DEBUG:root:closing interface

Espruino 还有一个配套的开发工具 Espruino Web IDE ,可以用来编辑代码、下载程序,甚至可用于图形化编程。下面是简单实现 LED 闪烁的代码,有没有一种似曾相识的感觉:

var on = false;  
setInterval(function() {  
  on = !on;
  LED1.write(on);
}, 500);

JavaScript 很少为人所知的玩法

ActionScript3 Flash编程无基础入门教程 中文WORD版
ActionScript3 Flash编程无基础入门教程 中文WORD版

做过Flash动画的Flash爱好者们都知道,要做好一个Flash动画,AS是必不可少的,即使只是很简单的几句代码也能起到整个Flash画龙点睛的作用。 虽然AS不是真正的面向对象的编程,但是它也有对象的概念。这个概念贯穿整个AS的始终,所以,对对象的理解,比对语法或者其他的理解更为重要。感兴趣的朋友可以过来看看

下载

有意思的是,Espruino 硬件上跑着 JavaScript 的解释器,上传给它的 JavaScript 代码只是保存在 RAM 中,掉电就没有了,这点跟浏览器的做法居然如出一辙,也正好体现了其具备动态解析的特点。

JerryScript

如果说 Espruino 有点玩具化,那 JerryScript 应该说就比较产品化了,而且 JerryScript 的资源开销也不高,RAM 可小于 64KB,ROM 可小于 200KB。

一说到 JerryScript 就一定离不开 IoT.js 和三星,他们的“三角关系”是这样的:

IoT.js 是一个使用 JavaScript 编写的物联网应用平台;JerryScript 是一个适用于嵌入式设备的小型 JavaScript 引擎;而三星开源了 IoT.js 和 JerryScript。

整个内部架构如下: JavaScript 很少为人所知的玩法

下面这一小段代码可以显示 JerryScript 的基本工作流程:初始化引擎 → 解析 JavaScript 代码 → 执行代码 → 结束运行,释放内存。

{
  jerry_init(JERRY_FLAG_ENABLE_LOG);

  char script[] = "print ('Hello, World!');";
  jerry_parse(script, strlen(script));

  jerry_run();

  jerry_cleanup();
}

查看 JerryScript 的源码,发现已经能够在一些 RTOS(如 Zephyr、mbed OS 等)上运行了。去年在深圳举行的 mbed Connect Asia 2016 大会上,Jan Jongboom 说他已经将 JerryScript 带到 mbed OS 5 上来了,还介绍了几个简单的示例。 JavaScript 很少为人所知的玩法

既然已经支持 mbed OS 5 了,那事情就好办多了,可以轻松支援自己开发的硬件,至于开发环境的搭建可以参考 README ,不难实现。

$ git clone http://www.php.cn/

$ cd mbed-js-example

# 国内的朋友可以使用淘宝镜像安装依赖:cnpm install
$ npm install 

# 此处 gulp 用于获取 JerryScript 源码
$ gulp

# 获取 mbed os 最新源码
$ cd ./build/jerryscript/targets/mbedos5/mbed-os
$ git checkout master
$ git pull

# 从我的仓库拉回相关目标硬件配置文件
$ git remote set-url origin http://www.php.cn/
$ git pull

# 指定目标板子,自动编译
$ gulp --target=YS_BEACON

再来看下 JavaScript 所编写应用的源码,是不是有种既陌生又亲切的感觉:

// blink_leds.js
var led = DigitalOut(LED1);

var blink = function() {  
    led.write(led.read() ? 0 : 1);
    print("blink! LED is now " + led.read());
};

module.exports = blink;

// main.js
var blink = require('./blink_leds');

setInterval(function() {  
    blink();
}, 1000);

将编译好的 mbedos5.hex 文件下载到目标板,看看是不是你想要的结果: JavaScript 很少为人所知的玩法

Blockly

如果你对编程语言或命令行窗口闪烁的光标感到恐惧的话,Blockly 或许是拯救你的利器,让你变得好玩有趣。 JavaScript 很少为人所知的玩法Blockly 是 Google 开发并开源的一个 JavaScript 库,用于实现图形化编程,只需拖动一些表示变量、表达式、循环等含义的图形块,组合在一起就可以完成编程,是不是很酷?

实际上,Blockly 只做一件事:可视化编辑,生成代码。而代码背后的行为,Blockly 是不管的,这就留给开发者们非常大的想象空间,例如 Ozobot 就开发了一个智能机器人玩具,玩家可以使用 Blockly 编程机器人的行为:

您的浏览器不支持 video 标签。

是不是很好玩?可惜就是没有机器人。不过,你可以先用 Espruino 体验一下 Blockly 的玩法,再一步一步构建你自己的机器人(没错,前面提到的 Espruino 是支持 Blockly 的): JavaScript 很少为人所知的玩法

未完待续

是不是还没有玩过瘾?更多好玩的东西,我还在探索中,等我学上手就来分享,感兴趣的朋友可以稍微关注一下。

 

以上就是JavaScript 很少为人所知的玩法的内容,更多相关内容请关注PHP中文网(www.php.cn)!

 

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

28

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

23

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

27

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

16

2026.02.27

Golang 高级特性与最佳实践:提升代码艺术
Golang 高级特性与最佳实践:提升代码艺术

本专题深入剖析 Golang 的高级特性与工程级最佳实践,涵盖并发模型、内存管理、接口设计与错误处理策略。通过真实场景与代码对比,引导从“可运行”走向“高质量”,帮助构建高性能、可扩展、易维护的优雅 Go 代码体系。

18

2026.02.27

Golang 测试与调试专题:确保代码可靠性
Golang 测试与调试专题:确保代码可靠性

本专题聚焦 Golang 的测试与调试体系,系统讲解单元测试、表驱动测试、基准测试与覆盖率分析方法,并深入剖析调试工具与常见问题定位思路。通过实践示例,引导建立可验证、可回归的工程习惯,从而持续提升代码可靠性与可维护性。

2

2026.02.27

漫蛙app官网链接入口
漫蛙app官网链接入口

漫蛙App官网提供多条稳定入口,包括 https://manwa.me、https

164

2026.02.27

deepseek在线提问
deepseek在线提问

本合集汇总了DeepSeek在线提问技巧与免登录使用入口,助你快速上手AI对话、写作、分析等功能。阅读专题下面的文章了解更多详细内容。

8

2026.02.27

AO3官网直接进入
AO3官网直接进入

AO3官网最新入口合集,汇总2026年可用官方及镜像链接,助你快速稳定访问Archive of Our Own平台。阅读专题下面的文章了解更多详细内容。

309

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 5.6万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 3.2万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号