1. ES2015中的箭头函数 JavaScript有一级函数的特性,也就是说,函数像其他值一样可以当成参数传来传去. var result = [1,2,3].reduce(function(total, current){ return total + current; }, 0) //6; 使用箭头函数改造一下: var result = [1,2,3].reduce((totoal, current) => total + current, 0); console.log(result)…
JavaScript使用的是基于原型的OO模型,用对象字面量或者函数来实例化对象,用原型链来实现继承. 这样对于数据传统C++.Java的OO范式的开发者来说,会感到比较困惑,于是从ES2015开始逐步引入一种新语法用来实现传统OO范式,在新语法的背后,其语义与我们熟悉的旧语法完全相同(使用构造函数以及基于原型的集成),但是,用新的方式来实现OO范式在语法上更加方便,而且更加简洁. ES2016在ES2015基础上,又添加了更多的语法特性,其中包括声明静态属性和实例属性. 下面看一个例子: 注意…
其基本原理就是JavaScript的作用域链,下面以对比的方式来展示一下函数级作用域和块级作用域. 函数级作用域 var fns = []; for (var i = 0; i < 5 ; i++){ //fns.push(() => {console.log(i)}); fns.push(function(){ console.log(i) }) } fns.forEach(fn => fn()); 运行结果是 5 5 5 5 5 块级作用域 var fns = []; for (le…
// 无参 var fn1 = function() {} var fn1 = () => {} // 单个参数 var fn2 = function(a) {} var fn2 = a => {} // 多个参数 var fn3 = function(a, b) {} var fn3 = (a, b) => {} // 可变参数 var fn4 = function(a, b, ...args) {} var fn4 = (a, b, ...args) => {}…
ES6新特性之 函数参数的默认值写法 和 箭头函数. 1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式:   从上面的代码可以看出存在一个问题,当传入的参数为0或者false时,会直接取到后面的值,而不是传入的这个参数值. 那怎么解决呢?对于上图的代码,可以通过判断是否传入了num参数,没有就用默认值:   这种做法还是很麻烦的,而ES6则直接在参数定义里面设置函数参数的默认值,而且不用担心传入参数是0或者false会出错了: 2.箭头函数 箭头函数用 =>…
本篇文章由:http://www.sollyu.com/c11-new-lambda-function/ 文章列表 本文章为系列文章 [C++11]新特性--auto的使用 http://www.sollyu.com/c11-new-features-auto/ [C++11]新特性--Lambda函数 http://www.sollyu.com/c11-new-lambda-function/ 说明 在标准 C++,特别是当使用 C++ 标准程序库算法函数诸如 sort 和 find,用户经常…
<=这个大家都知道是小于等于,那么=>是什么呢?今天我们就来探究一下ES6的新特新-----胖箭头函数. 其他语言的函数定义都是很简洁的,但是为什么javaScript的就那么复杂呢?还必须带function关键字,这是一直令我很困惑的一个问题,还好ES6为我们解了这个问题,它定义的箭头函数不仅省略了function和return,甚至连一些小括号,大括号和分号都省略了,这种极简主义风格简直美不可言. // ES5 array.filter(function(ele){ return ele…
装饰器在设计阶段可以对类和属性进行注释和修改,在Angular2中装饰器非常常用,可以用来定义组件.指令以及管道,并且可以与框架提供的依赖注入机制配合使用. 从本质上上讲,装饰器的最大作用是修改预定义好的逻辑,或者给各种结构添加一些元数据. 1. 作用 ES2016中的装饰器只是一种语法糖而已,编译时会把注解的代码翻译成我们熟悉的那种形式. 1.1. 改变程序的行为 通过装饰器,改变程序的行为,典型的用法是把方法和属性标识为已过期.Angular2已经内置了一组预定义好的装饰器,用以提高代码的可…
1.概览 1.1 函数名中的箭头,用来表明函数的return type,其使用在函数的返回类型需要通过模板参数进行推导,使用在decltype()和declval()不方便的场景 2.正文 c++ 中提供了如下的方式,定义一个函数以及返回值 Go return-type identifier ( argument-declarations... ) 如: int fn(....){...} 以及 CSS auto identifier ( argument-declarations... ) -…
reflect函数可以支持在sql中调用java中的自带函数,秒杀一切udf函数. 使用案例1:所有记录执行相同的java内置函数 hive中建一张表test_udf:column1(int),column2(int) 表中数据如下: 1,2 2,3 3,4 4,5 5,6 sql:select reflect("java.lang.Math","max",column1,column2) from test_udf 结果: 2 3 4 5 6 可以根据自己的需求使…