• 技术文章 >web前端 >前端问答

    es6 =>是什么意思

    青灯夜游青灯夜游2022-04-19 19:05:08原创145

    es6中,“=>”是指箭头函数,是一种函数的简写方式,语法为(参数)=>{函数体};”。箭头函数没原型,没this、arguments、super和“new.target”绑定,其值由外围最近一层非箭头函数决定;也不能通过new关键字调用。

    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

    =>是箭头函数,是ES6标准中新增的一种新的函数。顾名思义,箭头函数是一种使用箭头(=>)定义函数的新语法,箭头函数表达式的语法比函数表达式更简洁,但是它与传统的JavaScript函数有些许不同,主要集中在以下方面:

    基础语法

    (param1, param2, …, paramN) => { statements }
    (param1, param2, …, paramN) => expression
    //相当于:(param1, param2, …, paramN) =>{ return expression; }
    // 当只有一个参数时,圆括号是可选的:
    (singleParam) => { statements }
    singleParam => {statements }
    // 没有参数的函数应该写成一对圆括号:
    () => { statements }

    简单示例

    x => x * x

    即相当于:

    function (x) {
     return x * x;
    }

    更短的函数示例

            var elements = [
                'Hydrogen',
                'Helium',
                'Lithium',
                'Beryllium'
            ];
            
            elements.map(function(element) { 
                return element.length; 
            }); // 返回数组:[8, 6, 7, 9]
            
            // 上面的普通函数可以改写成如下的箭头函数
            elements.map((element) => {
                return element.length;
            }); // [8, 6, 7, 9]
            
            // 当箭头函数只有一个参数时,可以省略参数的圆括号
            elements.map(element => {
            return element.length;
            }); // [8, 6, 7, 9]
            
            // 当箭头函数的函数体只有一个 `return` 语句时,可以省略 `return` 关键字和方法体的花括号
            elements.map(element => element.length); // [8, 6, 7, 9]
            
            // 在这个例子中,因为我们只需要 `length` 属性,所以可以使用参数解构
            // 需要注意的是字符串 `"length"` 是我们想要获得的属性的名称,而 `lengthFooBArX` 则只是个变量名,
            // 可以替换成任意合法的变量名
            elements.map(({ "length": lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]

    三元运算符示例

    箭头函数也可以使用条件(三元)运算符:

            var simple = a => a > 15 ? 15 : a;
            simple(16); // 15
            simple(10); // 10
    
            let max = (a, b) => a > b ? a : b;

    不与new一起使用

    箭头函数不能用作构造器,和 new一起用会抛出错误。

            var Foo = () => {};
            var foo = new Foo(); // TypeError: Foo is not a constructor

    没有prototype属性

    箭头函数没有prototype属性。

            var Foo = () => {};
            console.log(Foo.prototype); // undefined

    函数体

    箭头函数可以有一个“简写体”或常见的“块体”。

    在一个简写体中,只需要一个表达式,并附加一个隐式的返回值。在块体中,必须使用明确的return语句。

            var func = x => x * x;                  
            // 简写函数 省略return(简写体)
    
            var func = (x, y) => { return x + y; }; 
            //常规编写 明确的返回值(块体)

    箭头函数递归

            var fact = (x) => ( x==0 ?  1 : x*fact(x-1) );
            fact(5);       // 120

    浏览器兼容性

    在这里插入图片描述

    【相关推荐:javascript视频教程web前端

    以上就是es6 =>是什么意思的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:ES6
    上一篇:node同步与异步的区别是什么 下一篇:react的脚手架是什么意思
    Web大前端开发直播班

    相关文章推荐

    • es5和es6作用域的区别是什么• es6怎么判断对象有没有某属性• es6怎么判断一个变量是否为字符串• es6能用var声明变量吗• es6新增数组方法是什么• es6中实现继承的方式是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网