在NodeJS中启用ECMAScript 6小结(windos以及Linux)
在NodeJS中启用ES6 (harmony) 版本:
开始吧,
Linux下启用
来源: http://h3manth.com/new/blog/2013/es6-on-nodejs/
Node version : v0.11.6
先来看一看版本 harm ;) :
$ node --v8-options | grep harm --harmony_typeof (enable harmony semantics for typeof) --harmony_scoping (enable harmony block scoping) --harmony_modules (enable harmony modules (implies block scoping)) --harmony_symbols (enable harmony symbols (a.k.a. private names)) --harmony_proxies (enable harmony proxies) --harmony_collections (enable harmony collections (sets, maps, and weak maps)) --harmony_observation (enable harmony object observation (implies harmony collections) --harmony_typed_arrays (enable harmony typed arrays) --harmony_array_buffer (enable harmony array buffer) --harmony_generators (enable harmony generators) --harmony_iteration (enable harmony iteration (for-of)) --harmony_numeric_literals (enable harmony numeric literals (0o77, 0b11)) --harmony_strings (enable harmony string) --harmony_arrays (enable harmony arrays) --harmony (enable all harmony features (except typeof))
不错,我们可以通过awk来启用所有的ES6新特性,需要跟 strict一起使用
$ node --use-strict $(node --v8-options | grep harm | awk '{print $1}' | xargs) #ES6
Windows下启用(通用方法)
来源: http://stackoverflow.com/questions/13351965/what-does-node-harmony-do
node --harmony app.js
看一个例子
作用域
关键字 let 可以让我们将变量的作用范围限定在一个代码块中
'use strict'; if (1) { let b = 2; console.log(b); //2 } console.log(typeof b); //undefined
相关推荐
-
ECMAScript6块级作用域及新变量声明(let)
很多语言中都有块级作用域,但JS没有,它使用var声明变量,以function来划分作用域,大括号"{}" 却限定不了var的作用域.用var声明的变量具有变量提升(declaration hoisting)的效果. ES6里增加了一个let,可以在{}, if, for里声明.用法同var,但作用域限定在块级,let声明的变量不存在变量提升. 示例1: 块级作用域 if function getVal(boo) { if (boo) { var val = 'red' // ...
-
ECMAScript 创建自己的js类库
ECMAScript中最有意思,最强大的地方在于函数.最进在完善自己的js类库的时候发现我们经常在用函数,但真的很少有人懂得ECMAScript函数功能. 1:什么是函数? ECMAScript函数其实就是对象,每个函数都是Function类型的实例而且有属性和方法,由于函数是对象,函数名其实就是指向函数对象的指针,不会与某个函数绑定. 2:创建函数的方法 复制代码 代码如下: (1):function Person(name) { return name; } (2):var Person=f
-
ECMAScript6变量的解构赋值实例详解
数组的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring) var [a, b, c] = [1, 2, 3]; 这种写法属于"模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值. 下面是一些使用嵌套数组进行解构的例子 let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar // 2 baz // 3 let [ , , third] = ["foo
-
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
接下来应该是BOM和HTML5了,但是鉴于ECMAScript5相对于ECMAScript3的新变化比较多,而且这些变化也非常的有意思,因此在这篇文章中再将我认为的有意思的变化(并非全部变化)集中整理一下,但这里只是列举,不具体展开. 一.语法变化 1.关键字和保留字 在ES3中,使用关键字做标识符会导致"Identifier Expected "错误,而使用保留字做标识符可能会也可能不会导致相同的错误,具体取决于特定的引擎.在ES5中,关键字和保留字虽然不能作为标识符 使用,但可以作
-
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
箭头函数是ECMAScript 6最受关注的更新内容之一.它引入了一种用「箭头」(=>)来定义函数的新语法,它-它碉堡了~.箭头函数与传统的JavaScript函数主要区别在于以下几点:1.对 this 的关联.函数内置 this 的值,取决于箭头函数在哪儿定义,而非箭头函数执行的上下文环境.2.new 不可用.箭头函数不能使用 new 关键字来实例化对象,不然会报错.3.this 不可变.函数内置 this 不可变,在函数体内整个执行环境中为常量.4.没有arguments对象.更不能通过ar
-
正则表达式字面量在ECMAScript5中的变化
在<JavaScript语言精粹>的第72页有这样一段: 用正则表达式字面量创建的RegExp对象来共享同一个单实例: 复制代码 代码如下: function make_a_matcher( ) { return /a/gi; } var x = make_a_matcher( ); var y = make_a_matcher( ); // 注意:x 和 y 是同一个对象! x.lastIndex = 10; document.writeln(y.lastIndex); // 10当你在浏览
-
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
在NodeJS中启用ES6 (harmony) 版本: 开始吧, Linux下启用 来源: http://h3manth.com/new/blog/2013/es6-on-nodejs/ Node version : v0.11.6 先来看一看版本 harm ;) : $ node --v8-options | grep harm --harmony_typeof (enable harmony semantics for typeof) --harmony_scoping (enable ha
-
nodejs中各种加密算法的实现详解
前言 在大前端的趋势下,前端er也要懂点数据加密相关的知识才行,加密算法的实现和原理我们可以不用深究,毕竟加密是一门高深的学科,但是基本的加密方式和编码还是要掌握的,毕竟没吃过猪肉,猪跑还是见过的嘛. 我对常见的几种加密和签名的算法做个归纳,同时附上 nodejs 的编码实现. 加密算法 为了保证数据的安全性和防篡改,很多数据在传输中都进行了加密.举个场景的栗子,最近很多网站都升级到 https 协议, https 协议就是使用了非对称加密和hash签名,还有 github 使用的 ssh ,也
-
解析在Tomcat中启用虚拟线程特性
目录 前提 引入依赖 编程式初始化Tomcat 暂时无法在SpringBoot体系中使用 小结 前提 趁着国庆前后阅读了虚拟线程相关的源码,写了一篇<虚拟线程 - VirtualThread源码透视>,里面介绍了虚拟线程的实现原理和使用示例.需要准备做一下前期准备: 安装OpenJDK-19或者Oracle JDK-19 准备好嵌入式Tomcat的依赖,需要引入三个依赖包,分别是tomcat-embed-core.tomcat-embed-el和tomcat-embed-websocket,版
-
解决nodejs中使用http请求返回值为html时乱码的问题
今天用nodejs进行http请求时返回的数据是一个html文件,然后我还是按照以前解析json数据的方法.果不其然报错了:SyntaxError: Unexpected token in JSON at position 0 没办法,只好换一种方法,将接受到的Buffer对象toString,然后打印出来发现是乱码. 第一感觉是编码问题,google一下然后看官方文档,总结三种方法: 1.toString 加编码格式作为参数. 2.使用iconv-lite 改变编码. 3.使用cheerio
-
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
关于nodejs读取中文文件真是折腾了不少时间,网上各种方案,最后没有一个适用我,好在解决了. 下面的三个知识点都是从项目中抽出的,要单独运行脚本的话需要用全局模式来安装模块,比如安装中文转换模块(后续其它的也需要这么做): 复制代码 代码如下: npm install -g iconv-lite npm install -g nodemailer npm install -g node-schedule 1.nodejs读取中文文件编码问题 准备一个文本文件(当然也可以是csv文件等)test
-
nodejs中art-template模板语法的引入及冲突解决方案
使用Webstorm创建nodejs express应用时,默认使用的是jade或者ejs模板,对于不习惯这两种模板语法的人来说确实不是很方便.没关系,这里我们使用art-template模板引擎,使用后可以直接使用html模板: 1.安装art-template npm install art-template 2.修改app.js文件,添加如下代码: // view engine setup app.set('views', path.join(__dirname, 'views')); v
-
nodejs中sleep功能实现暂停几秒的方法
我在网上了解了一下nodejs中sleep功能,搜索了很多关于nodejs中sleep功能介绍,下面我来记录一下,有需要了解的朋友可参考.希望此文章对各位有所帮助. 一 背景 在使用nodejs爬虫的时候,经常会遇到别人的网站对频率的反爬机制,这个时候如果不做处理程序就会挂掉,重新启动也会继续被屏蔽.这个问题怎么解决呢,我的想法就是程序暂停10分钟或者更长的时间,继续爬取. 二 方法 其实使用setTimeout就可以实现,只是nodejs异步已经很金字塔了,再加一层会更恐怖,所以本文使用nod
-
关于javascript中dataset的问题小结
DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关.与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路. 一.关于dataset 1.html5自定义属性及基础 html5
-
NodeJs中的非阻塞方法介绍
首先我们利用NodeJs先构建一个基本的服务器. index.js 复制代码 代码如下: var requestHandler = require("./requestHandler"); var server = require("./server"); var route = { "/hello": requestHandler.hello, "/upload": requestHandler.upload }; serv
-
浅谈nodejs中的类定义和继承的套路
javascript是一门极其灵活的语言. 灵活到你无法忍受! 我个人喜欢强类型的语言,例如c/c++,c#等. 但是js代表着未来,所以需要学习. js中类定义以及继承有n多种方式,现在来学习一下nodejs类定义以及继承的固定套路. 套路1. 在构造函数(constructor)中总是使用instanceof操作符: function Base() { if (!(this instanceof Base)) { return new Base(); } } 上述代码的含义就是: 如果Bas
随机推荐
- SQLite教程(一):SQLite数据库介绍
- JavaScript实现网页截图功能
- Oracle 日期的一些简单使用
- python将字符串转换成数组的方法
- javascript 中null和undefined区分和比较
- PHP编程风格规范分享
- JavaScript入门教程(3) js面向对象
- 英雄联盟辅助lol挂机不被踢的方法(lol挂机脚本)
- 让超出DIV宽度范围的文字自动显示省略号...
- 用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
- Myeclipse连接mysql数据库心得体会
- jQuery 翻牌或百叶窗效果(内容三秒自动切换)
- nodejs学习笔记之路由
- Js检测判断URL网址输入是否正确
- Nginx配置中指令root和alias的区别浅析
- PHP重要安全升级说明 推荐升级php 5.2.17版本
- udp socket客户端和udp服务端程序示例分享
- php求两个目录的相对路径示例(php获取相对路径)
- PHP源代码数组统计count分析
- 安卓(Android)动态创建多个按钮并添加监听事件