>웹 프론트엔드 >JS 튜토리얼 >잘 알려지지 않은 JavaScript 사용 방법

잘 알려지지 않은 JavaScript 사용 방법

黄舟
黄舟원래의
2017-03-02 15:08:001420검색

Stack OverFlow의 공동 창립자인 Jeff Atwood는 유명한 "Atwood의 법칙"을 제안한 적이 있습니다.

JavaScript로 작성할 수 있는 모든 애플리케이션은 결국 JavaScript로 작성됩니다.

JavaScript로 구현할 수 있는 모든 애플리케이션은 결국 JavaScript로 구현됩니다.

현재 JavaScript가 가장 인기 있는 프로그래밍 언어 중 하나가 되었다는 것은 의심할 여지가 없습니다. 엔지니어들, 심지어 풀스택 엔지니어도 여러분의 긴급한 의견에 분명히 동의할 것입니다. 최근 hackereart는 2016년 주류 프로그래밍 언어의 사용을 설명하는 블로그 게시물을 게시했습니다:

따라서 올해 가장 인기 있는 언어는 다음과 같습니다.

  • JavaScript

  • 자바

  • Python

  • PHP

  • R

  • Matlab

  • Arduino

  • Swift

프로그래밍으로 가장 세계에서 인기 있는 언어인 JavaScript는 그 범위를 여러 분야로 확장했으며 여러 가지 새로운 재생 방식으로 변모했습니다. 다음 콘텐츠에서는 잘 알려지지 않은 JavaScript 재생 방법 중 일부를 살펴보겠습니다.

Espruino

Espruino는 128KB 플래시 및 8KB RAM의 최소 리소스 오버헤드를 갖춘 마이크로컨트롤러(MCU)용으로 특별히 설계된 JavaScript 인터프리터이며 MPL-2.0 프로토콜을 사용하는 오픈 소스입니다.

저자 Gordon Williams는 최근 Espruino를 지원하는 하드웨어 Puck.js를 설계했습니다.

이 거인의 어깨에 제가 직접 개발한 하드웨어와 호환되도록 일부 수정했습니다. 관심 있는 친구들은 이를 복제하여 플레이할 수 있습니다.

$ 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);

흥미로운 점은 Espruino 하드웨어가 자바스크립트 인터프리터를 실행해서 업로드한다는 점입니다. JavaScript 코드는 RAM에만 저장되며 전원이 꺼지면 사라집니다. 이는 브라우저의 접근 방식과 정확히 동일하며 이는 동적 구문 분석 특성도 반영합니다.

JerryScript

Espruino가 약간 장난감 같다면 JerryScript는 좀 더 제품 지향적이라고 해야 할까요. JerryScript의 리소스 오버헤드는 높지 않고 RAM은 64KB 미만일 수 있으며, ROM은 200KB 미만일 수 있습니다.

JerryScript의 경우 IoT.js 및 Samsung과 분리될 수 없습니다. 이들의 "삼각 관계"는 다음과 같습니다.

IoT.js는 JavaScript로 작성된 개체입니다. 인터넷 애플리케이션 플랫폼인 JerryScript는 임베디드 장치에 적합한 작은 JavaScript 엔진이며 삼성은 IoT.js 및 JerryScript를 오픈 소스로 제공합니다.

전체 내부 구조는 다음과 같습니다.

다음의 작은 코드 조각은 JerryScript의 기본 작업 흐름을 보여줍니다. 엔진 초기화 → 구문 분석 JavaScript 코드 → 코드 실행 → 실행을 종료하고 메모리를 해제합니다.

{
  jerry_init(JERRY_FLAG_ENABLE_LOG);

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

  jerry_run();

  jerry_cleanup();
}

JerryScript의 소스 코드를 살펴보면 이미 일부 RTOS(예: Zephyr, mbed OS 등)에서 실행될 수 있다는 것을 알았습니다. 지난해 심천에서 열린 mbed Connect Asia 2016 컨퍼런스에서 Jan Jongboom은 JerryScript를 mbed OS 5에 도입했다고 말하며 몇 가지 간단한 예제를 소개했습니다.

이제 mbed OS 5가 지원되므로 개발 환경 설정에 대해 훨씬 쉽게 지원할 수 있습니다. 읽어보세요. 어렵지 않습니다.

rree

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(&#39;./blink_leds&#39;);

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

将编译好的 mbedos5.hex 文件下载到目标板,看看是不是你想要的结果:

Blockly

如果你对编程语言或命令行窗口闪烁的光标感到恐惧的话,Blockly 或许是拯救你的利器,让你变得好玩有趣。

Blockly 是 Google 开发并开源的一个 JavaScript 库,用于实现图形化编程,只需拖动一些表示变量、表达式、循环等含义的图形块,组合在一起就可以完成编程,是不是很酷?

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

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

未完待续

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

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.