ES6里关于函数的拓展(二)】的更多相关文章

一.构造函数 Function构造函数是JS语法中很少被用到的一部分,通常我们用它来动态创建新的函数.这种构造函数接受字符串形式的参数,分别为函数参数及函数体 var add = new Function("first", "second", "return first + second"); console.log(add(, )); ES6增强了Function构造函数的功能,支持在创建函数时定义默认参数和不定参数.唯一需要做的是在参数名后添…
一.箭头函数 在ES6中,箭头函数是其中最有趣的新增特性.顾名思义,箭头函数是一种使用箭头(=>)定义函数的新语法,但是它与传统的JS函数有些许不同,主要集中在以下方面: 1.没有this.super.arguments和new.target 绑定箭头函数中的this.super.arguments和new.target这些值由外围最近一层非箭头函数决定 2.不能通过new关键字调用 箭头函数没有[[construct]]方法,不能被用作构造函数,如果通过new关键字调用箭头函数,程序抛出错误…
一.形参默认值 Javascript函数有一个特别的地方,无论在函数定义中声明了多少形参,都可以传入任意数量的参数,也可以在定义函数时添加针对参数数量的处理逻辑,当已定义的形参无对应的传入参数时为其指定一个默认值 ES5模拟:在ES5中,一般地,通过下列方式创建函数并为参数设置默认值 function makeRequest(url, timeout, callback) { timeout = timeout || ; callback = callback || function() {};…
首先复习下普通函数里的this指向: function test(){ console.log(this) } test() 你会秒杀的毫无疑问的回答:window,针对普通函数:谁调用了函数  函数里的this就指向谁,test()等价于window.test(),所以是window var name="outername" var o={ name:"innername", getname:function(){ console.log(this.name) }…
继承与派生类 在ES6之前,实现继承与自定义类型是一个不小的工作.严格意义上的继承需要多个步骤实现 function Rectangle(length, width) { this.length = length; this.width = width; } Rectangle.prototype.getArea = function() { return this.length * this.width; }; function Square(length) { Rectangle.call(…
大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中引入了类的特性. 一.ES5近似结构 在ES5中没有类的概念,最相近的思路是创建一个自定义类型:首先创建一个构造函数,然后定义另一个方法并赋值给构造函数的原型 function PersonType(name) { this.name = name; } PersonType.prototype.s…
过去,javascript缺乏块级作用域,var声明时的声明提升.属性变量等行为让人困惑.ES6的新语法可以帮助我们更好地控制作用域. 一.var声明 1.变量提升:var声明会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined function getValue(condition){ if(condition){ var value = 'blue'; return value; }else{ //此处可访问变量value,值为undefined return null;…
一.指数运算符 ES6引入的唯一一个JS语法变化是求幂运算符,它是一种将指数应用于基数的数学运算.JS已有的Math.pow()方法可以执行求幂运算,但它也是为数不多的需要通过方法而不是正式的运算符来进行求幂 求幂运算符是两个星号(**):左操作数是基数,右操作数是指数 let result = 5 ** 2; console.log(result) console.log(result === Math.pow(,) ) // true 指数运算符可以与等号结合,形成一个新的赋值运算符(**=…
一.子串识别 自从 JS 引入了 indexOf() 方法,开发者们就使用它来识别字符串是否存在于其它字符串中.ES6 包含了以下三个方法来满足这类需求: 1.includes():该方法在给定文本存在于字符串中的任意位置时会返回 true ,否则返回false 2.startsWith():该方法在给定文本出现在字符串起始处时返回 true ,否则返回 false 3.endsWith():该方法在给定文本出现在字符串结尾处时返回 true ,否则返回 false 以上每个方法都接受两个参数:…
ECMAScript 6新增了箭头函数 原来的匿名函数 function(){},现在可以简化成()=>{} 看起来高大上,像C#什么的语法. 但是箭头函数的this对象,不能更改,总是指向函数定义生效时所在的对象. 如果用在jQuery的事件处理,就会导致this指向意想不到的元素,比如全局的window…