电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript 很少為人所知的玩法

瀏覽:7日期:2023-11-15 11:49:22

Stack OverFlow 的聯(lián)合創(chuàng)始人杰夫·阿特伍德(Jeff Atwood)曾提出著名的“Atwood定律”,即:

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

任何能夠用 JavaScript 實現(xiàn)的應(yīng)用,最終都必將用 JavaScript 實現(xiàn)。

毫無疑問,JavaScript 已然成為當下最流行的編程語言之一,這點已經(jīng)不需要爭論了,不服的話前后端乃至全棧工程師肯定跟你急。最近, hackereart 就發(fā)表過一篇博文,文中描述了2016年主流編程語言的使用情況: JavaScript 很少為人所知的玩法 JavaScript 很少為人所知的玩法 JavaScript 很少為人所知的玩法 JavaScript 很少為人所知的玩法

他們因此預(yù)測今年最流行的語言將會是:

JavaScript Java Python PHP Matlab Arduino Swift

作為編程語言界的當紅辣子雞,JavaScript 已將其觸角延伸到了很多領(lǐng)域,變換出了很多新奇的玩法,下面的內(nèi)容我試圖探索一些 JavaScript 很少為人所知的玩法:

Espruino

Espruino 是一個專門為微控制器(MCU)設(shè)計的 JavaScript 解釋器,最低資源開銷 128KB Flash & 8KB RAM,使用 MPL-2.0 協(xié)議開源。

作者 Gordon Williams 簡直就是個全才,最近還設(shè)計了一款硬件 Puck.js 來支持 Espruino。

在這位巨人的肩膀上,我做了一些修改,讓其能夠兼容我自己開發(fā)的硬件,修改后的代碼我已經(jīng)提交 GitHub 了,感興趣的小伙伴可以克隆下來玩玩。

Star

$ git clone https://github.com/makerdiary/Espruino.git$ 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 還有一個配套的開發(fā)工具 Espruino Web IDE ,可以用來編輯代碼、下載程序,甚至可用于圖形化編程。下面是簡單實現(xiàn) LED 閃爍的代碼,有沒有一種似曾相識的感覺:

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

JavaScript 很少為人所知的玩法

有意思的是,Espruino 硬件上跑著 JavaScript 的解釋器,上傳給它的 JavaScript 代碼只是保存在 RAM 中,掉電就沒有了,這點跟瀏覽器的做法居然如出一轍,也正好體現(xiàn)了其具備動態(tài)解析的特點。

JerryScript

如果說 Espruino 有點玩具化,那 JerryScript 應(yīng)該說就比較產(chǎn)品化了,而且 JerryScript 的資源開銷也不高,RAM 可小于 64KB,ROM 可小于 200KB。

一說到 JerryScript 就一定離不開 IoT.js 和三星,他們的“三角關(guān)系”是這樣的:

IoT.js 是一個使用 JavaScript 編寫的物聯(lián)網(wǎng)應(yīng)用平臺;JerryScript 是一個適用于嵌入式設(shè)備的小型 JavaScript 引擎;而三星開源了 IoT.js 和 JerryScript。

整個內(nèi)部架構(gòu)如下: JavaScript 很少為人所知的玩法

下面這一小段代碼可以顯示 JerryScript 的基本工作流程:初始化引擎 → 解析 JavaScript 代碼 → 執(zhí)行代碼 → 結(jié)束運行,釋放內(nèi)存。

{ jerry_init(JERRY_FLAG_ENABLE_LOG); char script[] = 'print (’Hello, World!’);'; jerry_parse(script, strlen(script)); jerry_run(); jerry_cleanup();}

查看 JerryScript 的源碼,發(fā)現(xiàn)已經(jīng)能夠在一些 RTOS(如 Zephyr、mbed OS 等)上運行了。去年在深圳舉行的 mbed Connect Asia 2016 大會上,Jan Jongboom 說他已經(jīng)將 JerryScript 帶到 mbed OS 5 上來了,還介紹了幾個簡單的示例。 JavaScript 很少為人所知的玩法

既然已經(jīng)支持 mbed OS 5 了,那事情就好辦多了,可以輕松支援自己開發(fā)的硬件,至于開發(fā)環(huán)境的搭建可以參考 README ,不難實現(xiàn)。

$ git clone https://github.com/YS-Beacon/mbed-js-example.git$ cd mbed-js-example# 國內(nèi)的朋友可以使用淘寶鏡像安裝依賴:cnpm install$ npm install # 此處 gulp 用于獲取 JerryScript 源碼$ gulp# 獲取 mbed os 最新源碼$ cd ./build/jerryscript/targets/mbedos5/mbed-os$ git checkout master$ git pull# 從我的倉庫拉回相關(guān)目標硬件配置文件$ git remote set-url origin https://github.com/makerdiary/mbed-os.git$ git pull# 指定目標板子,自動編譯$ gulp --target=YS_BEACON

再來看下 JavaScript 所編寫應(yīng)用的源碼,是不是有種既陌生又親切的感覺:

// blink_leds.jsvar led = DigitalOut(LED1);var blink = function() { led.write(led.read() ? 0 : 1); print('blink! LED is now ' + led.read());};module.exports = blink;// main.jsvar blink = require(’./blink_leds’);setInterval(function() { blink();}, 1000);

將編譯好的 mbedos5.hex 文件下載到目標板,看看是不是你想要的結(jié)果: JavaScript 很少為人所知的玩法

Blockly

如果你對編程語言或命令行窗口閃爍的光標感到恐懼的話,Blockly 或許是拯救你的利器,讓你變得好玩有趣。 JavaScript 很少為人所知的玩法 Blockly 是 Google 開發(fā)并開源的一個 JavaScript 庫,用于實現(xiàn)圖形化編程,只需拖動一些表示變量、表達式、循環(huán)等含義的圖形塊,組合在一起就可以完成編程,是不是很酷?

實際上,Blockly 只做一件事:可視化編輯,生成代碼。而代碼背后的行為,Blockly 是不管的,這就留給開發(fā)者們非常大的想象空間,例如 Ozobot 就開發(fā)了一個智能機器人玩具,玩家可以使用 Blockly 編程機器人的行為:

您的瀏覽器不支持 video 標簽。

是不是很好玩?可惜就是沒有機器人。不過,你可以先用 Espruino 體驗一下 Blockly 的玩法,再一步一步構(gòu)建你自己的機器人(沒錯,前面提到的 Espruino 是支持 Blockly 的): JavaScript 很少為人所知的玩法

未完待續(xù)

是不是還沒有玩過癮?更多好玩的東西,我還在探索中,等我學上手就來分享,感興趣的朋友可以稍微關(guān)注一下。

來自:https://makerdiary.co/interesting-things-about-javascript/

標簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 大鼠骨髓内皮祖细胞-小鼠神经元-无锡欣润生物科技有限公司 | J.S.Bach 圣巴赫_高端背景音乐系统_官网 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 美的商用净水器_美的直饮机_一级代理经销商_Midea租赁价格-厂家反渗透滤芯-直饮水批发品牌售后 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 办公室装修_上海办公室设计装修_时尚办公新主张-后街印象 | 智慧养老_居家养老_社区养老_杰佳通 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 温州食堂承包 - 温州市尚膳餐饮管理有限公司 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 合同书格式和范文_合同书样本模板_电子版合同,找范文吧 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 心得体会网_心得体会格式范文模板| 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 土壤养分检测仪_肥料养分检测仪_土壤水分检测仪-山东莱恩德仪器 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 深圳南财多媒体有限公司介绍| 纯水设备_苏州皙全超纯水设备水处理设备生产厂家| 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 合肥触摸一体机_触摸查询机厂家_合肥拼接屏-安徽迅博智能科技 | 电销卡_北京电销卡_包月电话卡-豪付网络 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 |