`
rainsilence
  • 浏览: 160765 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ECMAScript5 新特性(三)

阅读更多

Function 11: Date.prototype.toJSON

提供了从Date类型转成json的方法。

new Date().toJSON(); // "2010-12-06T16:25:40.040Z"
 

Function 12: Function.prototype.bind

你会发现这个函数的功能和下面的很相似

var arr1 = ['1', '2', '3'],
arr2 = ['4', '5', '6'];
// 等同于arr1.push(arr2);
Array.prototype.push.apply(arr1, arr2);
alert(arr1);

 bind和上面的不同之处在于apply是直接执行的,而bind只是绑定函数内部的this,并且将函数返回

var tooltip = { text: 'Click here to . . . ' },
overlay = { text: 'Please enter the number of attendees' };
function showText () {
     // really, do something more useful here
     alert(this.text);
}
tooltip.show = showText.bind(tooltip);
tooltip.show();
overlay.show = showText.bind(overlay);
overlay.show();
 Browser Support

○ Firefox 4

○ Internet Explorer 9

○ Chrome 7+

 

Function 13: Date.now()

大致这个函数就是等同于new Date().getTime() or +new Date,不是什么大的改动

 

Function 14: Object.getPrototypeOf

这个函数提供了从通过Object.create得到的对象中提取原型的方法,当然,如果这个对象是通过老的new

function的方法创造出来的,那也可以通过这个方法得到原型

 

var Dog = {
     name : 'dog',
     paws : 4,
     hungry : false,
     speak : function () { return 'Woof!'; }
};
var dog = Object.create(Dog);
// true
alert(Object.getPrototypeOf(dog) === Dog);
// 老方法判断
function Cat() {}
// true
alert(Object.getPrototypeOf(new Cat()) === Cat.prototype);

 

Function 15: String.prototype.trim

用来去除字符串两边的空格

var origin = " foo ";
document.write(origin.trim());

 

Function 16: Array.prototype.indexOf

这个函数用来返回查找的对象在数组中第一次出现的index

他有两个参数,第一个参数是要查找的对象,第二个参数是查找的起始位置

var array = [2, 5, 9];
var index = array.indexOf(2);
// index is 0
index = array.indexOf(7);
// index is -1
var element = 5;
var indices = [];
var idx = array.indexOf(element);
while (idx != -1) {
      indices.push(idx);
      idx = array.indexOf(element, idx + 1);
}

 当然如果浏览器没有支持indexOf,你可以用以下方法实现

if (!Array.prototype.indexOf) {
      Array.prototype.indexOf = function(searchElement /*, fromIndex */) {
            "use strict";
            if (this === void 0 || this === null)
                  throw new TypeError();
            var t = Object(this);
            var len = t.length >>> 0;
            if (len === 0)
                  return -1;
            var n = 0;
            if (arguments.length > 0) {
                  n = Number(arguments[1]);
                  if (n !== n)
                        n = 0;
                  else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))
                        n = (n > 0 || -1) * Math.floor(Math.abs(n));
            }
            if (n >= len)
                  return -1;
            var k = n >= 0
                        ? n : Math.max(len - Math.abs(n), 0);
            for (; k < len; k++) {
                  if (k in t && t[k] === searchElement)
                        return k;
            }
            return -1;
      };
}
 
分享到:
评论
4 楼 rainsilence 2011-01-26  
精髓都在代码里。特别是4这篇,很多特性只需要把代码一贴,连ie6都可以用了
3 楼 iapple 2011-01-26  
贴这么多代码干嘛。难怪这么多人投新手。
2 楼 rainsilence 2011-01-24  
呵呵,其实我也正打算这么用呢
add.bind(null)(5, 6);
1 楼 花花公子 2011-01-24  
<div class="quote_title">rainsilence 写道</div>
<div class="quote_div"> bind和上面的不同之处在于apply是直接执行的,而bind只是绑定函数内部的this,并且将函数返回
<p> </p>
<pre name="code" class="js">var tooltip = { text: 'Click here to . . . ' },
overlay = { text: 'Please enter the number of attendees' };
function showText () {
     // really, do something more useful here
     alert(this.text);
}
tooltip.show = showText.bind(tooltip);
tooltip.show();
overlay.show = showText.bind(overlay);
overlay.show();</pre>
</div>
<p>我更喜欢使用bind实现curry化,比如</p>
<pre name="code" class="js">&gt; var add = function(x,y){ return x+y }
&gt; var add5 = add.bind(null, 5)
&gt; add5(1)
6
</pre>
 

相关推荐

    ECMAScript 6新特性

    本人看过《深入浅出ES6》后把一百多页去除水分,总结成十来页的文档,方便快速入门。

    ECMAscript常用新特性积累1

    随着技术的发展,新的版本不断推出,引入了许多创新特性和改进。以下是一些在ES5、ES6(也称为ES2015)以及ES7(ES2016)中的常见新特性: 1. **保留关键字**:在ES5中,有一些保留关键字如`catch`,不能用作变量名...

    JavaScript权威指南-ECMAScript5.pdf

    12. **ECMAScript5**:ECMAScript是JavaScript的标准,第五版引入了严格模式、对象字面量的改进、JSON支持、函数绑定、数组和对象的新方法等特性。 13. **函数式编程**:虽然JavaScript并非纯函数式语言,但其支持...

    ECMAScript6 新特性范例大全

    ECMAScript6,也称为ES2015,是JavaScript语言的一个重要版本更新,引入了许多新的特性和语法改进,使得代码更加简洁、易读。以下是一些关键的新特性及其范例: 1. **箭头函数**: 箭头函数提供了一种更简洁的函数...

    ECMAScript 6 入门(第三版)

    这本书“ECMAScript 6 入门(第三版)”深入浅出地介绍了这些新特性,无论你是初学者还是经验丰富的开发者,都能从中受益,提升你的JavaScript编程技能。配合不同格式的电子书,你可以在任何设备上轻松阅读,享受...

    ECMAScript全套(5,6,2018).zip

    本压缩包包含的是ECMAScript的三个重要版本:ECMAScript 5(ES5)、ECMAScript 6(ES6,也称为ES2015)以及ECMAScript 2018(ES2018)。这些版本在JavaScript的发展历程中扮演了关键角色,引入了许多新的特性和改进...

    《ECMAScript2016标准入门(第三版)》_阮一峰最新版

    综上所述,《ECMAScript2016标准入门(第三版)》不仅详细介绍了ES2016的新特性,而且还提供了丰富的示例帮助读者理解和应用这些特性。无论是对于初学者还是有一定经验的开发者来说,这本书都是学习ES2016不可多得的好...

    ECMAScript-Edition5-小试

    ### ECMAScript 5 版本特性解析 #### 引言 随着互联网技术的迅猛发展,JavaScript 作为一种广泛应用于浏览器端的脚本语言,其重要性日益凸显。为了更好地满足开发者的实际需求并提高编程效率,ECMAScript 第五版...

    JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性

    ECMAScript 5(简称ES5)是ECMAScript的一个重要版本,带来了许多新特性,这些新特性在《JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性》中被详细讨论。 ES5相对于之前版本,如ECMAScript 3(简称...

    ECMAScript Second Edition javascript新特性2018年7月最新版本

    ECMAScript Second Edition javascript新特性2018年7月最新版本

    浅谈ECMAScript6新特性之let、const

    ECMAScript 6,简称ES6,是JavaScript语言的一个重要版本更新,引入了许多新的特性和语法改进。本文将深入探讨其中两个关键特性:`let` 和 `const`。 `let` 是ES6中用于声明变量的新关键字,它解决了在ES5中`var`...

    ECMAScript 6 第三版

    **ECMAScript 6(简称ES6)是JavaScript语言的一个重大升级版本,它引入了许多新的特性和改进,为开发者提供了更强大的工具和更简洁的语法。阮一峰老师的《ES6标准入门》第三版是一本深入讲解这些新特性的权威著作,...

    ESLint:ESLint规则详解:ECMAScript6+特性.docx

    ESLint:ESLint规则详解:ECMAScript6+特性.docx

    2018最新高清ECMAScript 6入门

    ES6,全称ECMAScript 2015,是JavaScript语言的一个重要版本更新,引入了大量的新特性和语法糖,对前端开发领域产生了深远影响。 1. **变量声明** - `let` 和 `const`: ES6 引入了新的变量声明方式,`let` 用于...

    ECMAScript 6 入门(第三版 )

    **ECMAScript 6 入门(第三版)** ECMAScript 6,简称ES6,是JavaScript语言的一个重大更新版本,正式名称为ECMAScript 2015。这个版本引入了大量的新特性,旨在提高开发效率、增强代码可读性和可维护性,以及为...

    ECMAScript 6 入门教程-全面介绍 ECMAScript 6 新引入的语法特性

    5. 正则的扩展 6. 数值的扩展 7. 函数的扩展 8. 数组的扩展 9. 对象的扩展 10. Symbol 11. Set 和 Map 数据结构 12. Proxy 13. Reflect 14. Promise 对象 15. Iterator 和 for...of 循环 16. Generator 函数的语法 ...

    ECMAscript

    ### ECMAscript基础知识点详解 #### 一、ECMAscript概述 ECMAscript,通常简称ES,是一种脚本语言的标准规范,由欧洲计算机制造...随着ECMAScript标准的不断演进,掌握其最新特性和最佳实践对于开发者来说至关重要。

    高性能JavaScript 2015版本 ECMAScript 6入门 JavaScript 5

    随着技术的不断演进,JavaScript也在持续发展,从最初的ECMAScript 3到现在的ECMAScript 6(也被称为ES2015),它带来了许多新特性和改进,显著提升了开发者的效率和代码的可维护性。以下将详细介绍JavaScript的发展...

    ecmascript手册

    本手册定义的是ECMAScript的第三版,其中包括强大的正则表达式、改进的字符串处理、新的控制语句、try/catch异常处理机制、错误定义更严谨、数字输出格式化以及针对未来国际化设施和语言扩展的微小改动。第三版标准...

    《ECMAScript 6 入门-阮一峰》PDF完整版

    **ECMAScript 6(简称ES6)是JavaScript语言的一个重大升级版本,它引入了许多新的特性和改进,为开发者提供了更强大的工具和更简洁的语法。阮一峰先生的《ECMAScript 6 入门》是一本深入浅出介绍这一版本的权威指南...

Global site tag (gtag.js) - Google Analytics