`
enix2212
  • 浏览: 24098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

javascript1.7新语法

 
阅读更多
1.yield 关键字
Yield的作用与return 差不多,都会返回一个结果。但是return会跳出函数,yield可以多次使用直到运算不能进行。(Yield也是一个c#的关键字)。

2.生成器Generators
当一个函数使用yield指定返回值时,可以把他当做生成器来使用。如果调用了包含yield函数则会得到一个生成器的实例。每次调用生成器实例的next方法,就会得到一个运算结果。如果超出生成器的边界就会得到一个object StopIteration的错误。因为yield的关系,不能准确的得到生成器的长度,所以用try语句处理一下。当生成器使用完毕后,调用close方法,会强制关闭生成器。

<script type="application/javascript;version=1.8">
function getNumber(){
	for(let i=0;i<10;i++){
		yield i*2;
	}
}
var generators= getNumber();
	try{
		while(generators){
			console.log(generators.next());
		}
	}catch(e){

	}finally{
		generators.close();
	}
</script>


3.迭代器
如果对for和for in使用非常厌恶的同学,可以试试迭代器。即使不使用循环也能达到同样的目的,而且迭代器可以支持任意类型的对象。

var arr=['a','b','c'],it=new Iterator(arr); //{'1':'a','2':'b','3':'c'}
try{
	while(it){
		console.log(it.next()); //[0, "a"][1, "b"][2, "c"]  // [1, "a"][2, "b"][3, "c"]
	}
}catch(e){};


调用迭代器的next方法会返回一个数组,第一项是下标或者key,第二项是对应的值。如果超出边界的话会返回一个object StopIteration的错误。

]4.数组领悟。[/b]
这是应python的语法,现在引入js可以极大的提高生产力。
语法如下 array=[value for each (variable in values) condition ];
var a=[1,3,6,13,0,94,222];
A.
for each(i in a){ if(i){console.log(i)}} //类似for in的古老用法。


B.
var b=[i*2 for each(i in a) if(i%3===0)];// [6,12,0,444] 得到一个新数组


C.
var b=(i*2 for each(i in a) if(i%3===0));//获得一个生成器。
	try{
		while(b){
			console.log(b.next());// 6 12 0 444
		}
	}catch(e){}; 

D. 处理对象
for each(let [j,k] in new Iterator(a)){
		console.log(j +' '+k)
	}; 


5.结构赋值
这个非常简单,听说也是来自python的语法
 
var [a,b]=[1,2,3,4]; //a=1 b=2
var {width:px,height:pec}={width:80,height:'5'};


6.let关键字 创建块级作用域
在现在使用广泛的javascript1.5是没有块级作用域的。用var定义变量,由于解析器变量提升的关系经常不小心就踩到地雷,现在福音来了!

void function (){
	if(true){
		let a=1;
		console.log(a);//1
	}
	console.log(a);//undefined
}()
1
2
分享到:
评论

相关推荐

    JavaScript详解(第2版)

    1.7 JavaScript及其在Web开发中承担的角色 7 1.8 JavaScript和事件 9 1.9 标准化JavaScript和W3C 11 1.9.1 JavaScript对象 12 1.9.2 文档对象模型 12 1.10 关于浏览器 13 1.10.1 JavaScript的版本 14 ...

    最新整理autojs4.1.1全套.zip

    因为Auto.js是基于JavaScript的,学习Auto.js的API之前建议先学习JavaScript的基本语法和内置对象,可以使用教程前面的两个JavaScript教程链接来学习。 如果您想要使用TypeScript来开发,目前已经有开发者公布了一...

    JavaScript中的迭代器和生成器详解

    在JavaScript 1.7中,迭代器和生成器在JavaScript核心语法中带来了新的迭代机制,而且还提供了定制 for…in 和 for each 循环行为的机制。 迭代器 迭代器是一个每次访问集合序列中一个元素的对象,并跟踪该序列中...

    JavaScript完全自学宝典 源代码

    1.7.html 使用JavaScript实现简单的字幕滚动。 1.8.html 使用JavaScript实现字幕连续滚动。 1.9.html 使用JavaScript实现的简单数字时钟。 1.10.html 使用JavaScript实现的带阴影的数字时钟。 1.11...

    auto.js Apk

    Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。 因为Auto.js是基于JavaScript的,学习Auto.js的API之前建议先学习JavaScript的基本语法和内置对象,可以使用教程...

    rhino-1.7.7.1

    Rhino 是一种使用 Java 语言编写的 JavaScript 的开源实现,原先由Mozilla开发,现在被集成进入JDK 6.0。与其他很多语言一样,Rhino 是...Rhino 从 JavaScript 中借用了很多语法,让程序员可以快速编写功能强大的程序。

    javascript模板引擎artTemplate.zip

    artTemplate 是新一代 javascript 模板引擎,它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前端还是后端都有极其出色的表现。在 chrome 下渲染效率测试中分别是知名引擎...

    Autojs4.11.js.zip

    因为Auto.js是基于JavaScript的,学习Auto.js的API之前建议先学习JavaScript的基本语法和内置对象,可以使用教程前面的两个JavaScript教程链接来学习。 如果您想要使用TypeScript来开发,目前已经有开发者公布了一...

    autojs4.1.1全套.zip

    因为Auto.js是基于JavaScript的,学习Auto.js的API之前建议先学习JavaScript的基本语法和内置对象,可以使用教程前面的两个JavaScript教程链接来学习。 如果您想要使用TypeScript来开发,目前已经有开发者公布了一...

    Auto.js软件及打包插件合集.zip

    因为Auto.js是基于JavaScript的,学习Auto.js的API之前建议先学习JavaScript的基本语法和内置对象,可以使用教程前面的两个JavaScript教程链接来学习。 如果您想要使用TypeScript来开发,目前已经有开发者公布了一...

    Kotlin官方参考文档中文版

    1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.7.10 1.7.11 1.7.12 1.7.13 1.7.14 1.8 1.8.1 1.8.2 1.9 1.9.1 1.9.2 1.9.2.1 1.9.3 1.10 1.10.1 1.10.2 1.11 委托 委托属性 函数与 Lambda 表达式 ...

    jconv:用于日语字符编码的纯JavaScript转换器

    jconv 用于日语编码的纯JavaScript Iconv。 此模块支持日语中常用的编码: Shift_JIS(CP932),... 也可用的iconv-lite语法: var str = jconv . decode ( buffer , fromEncoding ) ; var buf = jconv . encode

    javascript网页特效实例大全

    1.5 javascript的基本语法 10 1.5.1 if条件选择语句 10 1.5.2 switch选择语句 11 1.5.3 do…while语句 12 1.5.4 while循环语句 13 1.5.5 for循环语句 14 1.5.6 break语句与continue语句 15 1.6 javascript的...

    autojs.zip

    亲测可用 autojs打包成apk的插件 Auto.js使用JavaScript作为... 因为Auto.js是基于JavaScript的,学习Auto.js的API之前建议先学习JavaScript的基本语法和内置对象,可以使用教程前面的两个JavaScript教程链接来学习

    68个常用开发手册

    JavaScript Professional Projects.chm JavaScript20.chm JavaScript中文手册.CHM JavaScript手册.chm JavaScript语言中文参考手册.chm java_ee_api_中英文对照版.chm jBPM 4.4 API.chm jdk 1.7_api_doc.CHM JDK_API...

    Ajax基础教程(扫描版)

    5.4 使用jslint完成javascript语法检查 137 5.5 完成javascript压缩和模糊处理 138 5.6 使用firefox的web开发扩展 140 5.7 实现高级javascript技术 141 5.7.1 通过prototype属性建立面向对象的javascript 142 ...

    各种开发手册大全

    │ JavaScript Professional Projects.chm │ JavaScript20.chm │ JavaScript中文手册.CHM │ JavaScript手册.chm │ JavaScript语言中文参考手册.chm │ java_ee_api_中英文对照版.chm │ java_ee_api_中英文对照...

    Web程序设计计算机科学经典教材.doc

    7 1.4.2 服务器的一般特性 8 1.4.3 Apache 9 1.4.4 IIS 9 1.5 统一资源定位符 9 1.5.1 URL的格式 10 1.5.2 URL路径 10 1.6 MIME 11 1.6.1 类型说明 11 1.6.2 实验性文档类型 12 1.7 超文本传输协议 12 1.7.1 请求...

    php网络开发完全手册

    1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 2.2 常量与变量 25 2.2.1 常量的定义 25 2.2.2 变量的定义 26 2.2.3 变量的作用域 27 2.2.4 动态变量 29 2.3 运算符和关键字 29 2.4 流程控制语法 30...

Global site tag (gtag.js) - Google Analytics