首页 > 其他分享 >ES6之箭头函数

ES6之箭头函数

时间:2022-11-17 23:23:29浏览次数:46  
标签:ES6 console log name 箭头 let 函数

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数</title>
</head>

<body>
    <script>
        // ES6 允许使用「箭头」(=>)定义函数。
        //声明一个函数
        let fn = function(){

        }
        let fn = (a,b) => {
            return a + b;
        }
        //调用函数
        let result = fn(1, 2);
        console.log(result);


        //1. this 是静态的. this 始终指向函数声明时所在作用域下的 this 的值
        function getName(){
            console.log(this.name);
        }
        let getName2 = () => {
            console.log(this.name);
        }

        //设置 window 对象的 name 属性
        window.name = '尚硅谷';
        const school = {
            name: "ATGUIGU"
        }

        //直接调用
        getName();//结果是尚硅谷
        getName2();//结果是尚硅谷

        //call 方法调用,它能够直接替换函数内部的this
        getName.call(school); //结果是ATGUIGU  因为替换了内部的this,变成school里的name值了。
        //结果是尚硅谷 箭头函数里面的this是静态的,一直指向函数声明时所在作用域下的 this 的值,所以this不变
        getName2.call(school); 

        //2. 不能作为构造实例化对象
        let Person = (name, age) => {
            this.name = name;
            this.age = age;
        }
        let me = new Person('xiao',30);
        console.log(me); //报错

        //3. 不能使用 arguments 变量
        let fn = () => {
            console.log(arguments);
        }
        fn(1,2,3);

        //4. 箭头函数的简写
            //1) 省略小括号, 当形参有且只有一个的时候
            let add = n => {
                return n + n;
            }
            console.log(add(9));
            //2) 省略花括号, 当代码体只有一条语句的时候, 此时 return 必须省略
            // 而且语句的执行结果就是函数的返回值
            let pow = n => n * n;
                
            console.log(pow(8));

    </script>
</body>

</html>

 

实践示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数实践</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background: #58a;
        }
    </style>
</head>
<body>
    <div id="ad"></div>
    <script>
        //需求-1  点击 div 2s 后颜色变成『粉色』
        //获取元素
        let ad = document.getElementById('ad');
        //绑定事件
        // 原始写法:
        // ad.addEventListener("click", function(){
        //     //保存指向ad的this 的值
        //      let _this = this;
        //     //定时器
        //     setTimeout(() => {
        //         //修改背景颜色 this
        //         // console.log(this);
        //         // this.style.background = 'pink'; 这样写会报错;此时的this指向的是window;
        //          _this.style.background = 'pink'; 
        //     }, 2000);
        // });
        ad.addEventListener("click", function(){
            //定时器
            setTimeout(() => {
                //修改背景颜色 this
                // console.log(this);
                // _this.style.background = 'pink';
                // 因为箭头函数中的this指向的是
                this.style.background = 'pink';
            }, 2000);
        });

        //需求-2  从数组中返回偶数的元素
        const arr = [1,6,9,10,100,25];
        //原始写法:
        // const result = arr.filter(function(item){
        //     if(item % 2 === 0){
        //         return true;
        //     }else{
        //         return false;
        //     }
        // });
        
        const result = arr.filter(item => item % 2 === 0);

        console.log(result);

        // 箭头函数适合与 this 无关的回调. 定时器, 数组的方法回调
        // 箭头函数不适合与 this 有关的回调.  事件回调, 对象的方法

    </script>
</body>

</html>

 

标签:ES6,console,log,name,箭头,let,函数
From: https://www.cnblogs.com/anjingdian/p/16901765.html

相关文章

  • python-eval 函数-笔记
    ​​eval()​​ 函数十分强大—— 将字符串 当成 有效的表达式 来求值并 返回计算结果#基本的数学计算In[1]:eval("1+1")Out[1]:2#字符串重复In[2]:eval("'*'......
  • 用函数求四个数中的最大数
    #include<stdio.h>intmain(){intmax4(inta,intb,intc,intd);inta,b,c,d,max;printf("Pleaseenter4intergernumbers:");scanf("%d%d%d%d......
  • C++ 函数之占位参数
    voidfunc(inta,int){cout<<"占位参数"<<endl;}//占位参数之默认参数voidfunc2(inta,int=10){cout<<"占位默认参数"<<endl;}intmain()......
  • C++ 函数的形参之默认参数
    //如果某个位置参数有默认值,那么从这个位置往后,从左向右,必须都有默认值intfunc(inta,intb=10){returna+b;}//一个错误示范intfunc(inta,intb=10,in......
  • Hook代替类组件(hook+函数组件)
    Hook是React16.8的新增特性,它可以在不编写类组件的情况下使用state以及其他React特性Hook和函数组件:React的函数组件处理是这样的constDemo=(props)=>{//可......
  • 解决vs2019无法解析的外部符号问题,未找到xxx的函数定义
    问题如图:解决:将光标移动到该函数上点击创建函数,然后将你写的函数定义复制到里面。......
  • _main函数 int __cdecl invoke_main(void) (?invoke_main@@YAHXZ)
    问题描述:errorLNK2019:无法解析的外部符号_main,函数“int__cdeclinvoke_main(void)”(?invoke_main@@YAHXZ)中引用了该符号解决:看一下主函数写没写错......
  • 函数指针
     1#include<cstdio>2#include<iostream>3usingnamespacestd;4intmax(intx,inty)5{6returnx>y?x:y;7}8intmain()9{10int......
  • go语言string函数的使用
    packagemainimport("fmt""strconv""strings")funcmain(){//1str:="hello杯"//goland统一为utf-8(字母数字占一个字节,汉字占3个字节)fmt.Println(le......
  • postgis simplify(简化线、抽稀函数)
    1.【postgis】抽希函数st_simplify、ST_SimplifyPreserveTopology:https://blog.csdn.net/flowerspring/article/details/1062556502.使用PostGIS简化相邻的多边形?:https:......