ES6: 模板字符串和箭头函数的基本使用

news/2025/3/22 6:32:46/

前言

本文主要介绍了ES6中模板字符串和箭头函数的基本使用

一、模板字符串

1、基本介绍

  • 由反引号``(在键盘Esc键的下面)圈住的字符串即模板字符串
  • 举例:
//普通字符串
const name='hello'
console.log(name)//模板字符串
const name1=`world`
console.log(name1)

结果:
在这里插入图片描述

2、模板字符串和一般字符串的区别

  • 代码1:一般字符串的使用
    使用一般字符串时,对字符串进行拼接时需要用到加号+
<script>const person={name:'June',age:18,sex:'male'};const info='我的名字是'+person.name+',性别:'+person.age;console.log(info)</script>

结果:
在这里插入图片描述

  • 代码2:模板字符串的使用
    使用模板字符串时,使用${}来注入模板字符串
<script>const person={name:'June',age:18,sex:'male'};const info= `我的名字是:${person.name},性别:${person.sex}`;console.log(info)
</script>

结果:
在这里插入图片描述

3、模板字符串的注意事项

  • 模板字符串中,所有的空格、换行或缩进都会被保留在输出之中
    (1)普通字符串
    通过转义字符来实现换行
<script>const info='第一行\n第二行'console.log(info)</script>

结果:
在这里插入图片描述

(2)模板字符串
方法一:通过转义字符来实现换行

<script>const info=`第一行\n第二行`console.log(info)
</script>

结果:
在这里插入图片描述
方法二:通过换行实现换行效果
模板字符串中,可以通过直接换行来实现上述效果,不过所有的空格、换行或缩进都会被保留在输出之中

<script>const info=`第一行第二行`console.log(info)</script>

结果:
在这里插入图片描述
如果输出结果不想有空格,挪动一下要换行的文字内容:
在这里插入图片描述
结果:
在这里插入图片描述

  • 输出 ` 和 \ 等特殊字符串
    使用转义字符反斜杠对字符串进行转义,比如:
    在这里插入图片描述

结果:
在这里插入图片描述

  • 模板字符串的注入
    (1)通过${}来实现对模板字符串的注入
    (2)只要最终可以得出一个值的就可以通过${}注入到模板字符串中

举例

<script>const username="June"const person ={ age: 18, sex: 'male' ,};const getSex = function (sex) {return sex === 'male' ?'男':'女';}const info = `${username}, ${person.age + 2}, ${getSex( person.sex)}`;console.log (info);</script>

结果:
在这里插入图片描述

二、箭头函数

1、基本介绍

  • 箭头函数的结构:
    const/let 函数名 = (参数)=>{函数体}
  • 举例:
const add =(x,y)=>{return x+y;
};
console.log(add(2,2));

分析:
首先,参数和函数体之间由箭头=>连接;由于构成的函数是匿名函数,因此无法直接给箭头函数起名字,得将其赋给一个变量或者常量,变量名或常量名即函数名;接着就可以在其他地方通过调用函数名来调用函数了。

2、注意事项

  • 单个参数可以省略圆括号
    比如:
const add = x=>{return x+1;
};
console.log(add(2));
  • 无参数或者多个参数不能省略圆括号
    比如:
const add = ()=>{return 1+1;
};
console.log(add());
  • 单行函数体可以同时省略{}和return
constadd=(x,y)=>x+y;
console.log(add(1, 1));
  • 如果箭头函数返回单行对象,可以在{}外面加上(),让浏览器不再认为那是函数体的花括号,而是对象的花括号
const add = (x,y) => ({value:x + y});
console.log add((1, 1));

结果:
在这里插入图片描述

3、非箭头函数的this指向

(1)全局作用域中的this指向window

console.log(this); // window

结果:
在这里插入图片描述

(2)一般函数中的this指向

  • 只有在函数调用的时候,this指向才确定;不调用的时候,不知道this指向谁
  • this指向和函数在哪儿调用没关系,只和谁在调用有关
function add(){console.log(this);
}  
add();

结果:
在这里插入图片描述

4、箭头函数的this指向

  • 箭头函数的this指向由它所在的作用域决定,而不是由函数的调用方式决定。箭头函数没有自己的this,它会捕获外部环境的this作为自己的this。所以,在箭头函数内部,this指向的是外部环境的this,而不是函数自身的this。
  • 举例
const obj = {num: 10,fn: function() {setTimeout(() => {console.log(this.num);}, 1000);}
};obj.fn(); // 输出10

分析:
在这个例子中,箭头函数作为setTimeout的回调函数,在调用时使用了外部环境obj的this,所以this指向obj,输出了10。如果改用普通的函数声明,则this指向setTimeout函数本身,无法访问obj对象中的num属性。

  • 不适合箭头函数的场景

(1)作为构造函数
如果使用箭头函数来作为构造函数,当实例化构造函数的时候会报错。因为箭头函数没有this,而构造函数有,当实例化构造函数的时候,里面的this会指向

(2)需要this指向调用对象的时候
箭头函数没有自己的 this,它会使用其父作用域中的 this 值,从而出现一些意外的行为。

(3)需要使用arguments的时候

当需要在函数内部使用arguments关键字时,箭头函数也不适用。箭头函数没有自己的arguments对象,所以不能在内部使用它。


http://www.ppmy.cn/news/162783.html

相关文章

用python进行办公自动化都需要学习什么知识呢?

本文先来分享Python实现自动化办公需要学什么&#xff0c;从哪里学&#xff01;以及自动化办公技巧的资源整理… 很多非IT职场人&#xff0c;想要把Python用到工作中&#xff0c;却不知道如何下手。其实自动化办公无非就是Excel、PPT、Word、邮件、文件处理、数据分析处理、爬虫…

数码相机是通过什么接口与计算机连接的,为什么数码相机数据线和电脑连接没反应...

公告&#xff1a; 为响应国家净网行动&#xff0c;部分内容已经删除&#xff0c;感谢读者理解。 话题&#xff1a;为什么数码相机数据线和电脑连接没反应&#xff1f;回答&#xff1a;个人建议和观点供你参考&#xff1a;1.用相机自带的数据线和你的电脑正确连接&#xff0c;电…

苹果电脑上几个专业的数码照片编辑工具

使用数码相机拍摄的图片一般是raw格式&#xff0c;raw格式如果强行转化成jpg,多数会有不同程度的损伤&#xff0c;所以我们要编辑数码照片的话&#xff0c;需要对应功能的软件&#xff0c;来保证图片的清晰度和细腻度&#xff0c;我整理了几款比较好用的可以编辑数码相机图片编…

双十一什么数码产品值得买?2022双十一值得买的数码好物推荐

双十一活动正在火热进行当中&#xff0c;相信不少人像我一样还在观望一些数码产品。不少人问我&#xff0c;双十一什么数码产品值得买&#xff1f;下面&#xff0c;我来给大家推荐几款双十一值得买的数码好物&#xff0c;希望能帮到大家。 一、南卡小音舱蓝牙耳机 双十一价格…

开学季必备数码好物推荐,分享几款值得入手的的数码好物

暑假期结束&#xff0c;准备迎接大学生开学的到来。很多学生在进向往的大学生活前&#xff0c;都会网购一些生活用品、数码产品。很多同学不知道需要准备哪些数码好物&#xff0c;下面小编为大家介绍一些有意思的数码产品&#xff0c;希望它能更丰富同学们的校园生活。 一、不…

双十一数码购买清单,最值得入手的数码好物分享

​又到了一年一度双十一购物节&#xff0c;不知道大家有没有想买的东西&#xff0c;除了生活用品之外&#xff0c;还有没有想要入手一些数码好物的。手机、电脑、耳机等等这些数码产品&#xff0c;在双十一的时候都会有很多人购买&#xff0c;但也有小伙伴不知道该怎么找&#…

双十一什么数码产品值得入手、最值得入手的数码好物分享清单

这个双11&#xff0c;总体来说很魔幻&#xff0c;数码领域的发展不再是一条直线&#xff0c;也就是提升性能&#xff0c;赢得销量&#xff0c;继续提升性能&#xff0c;继续赢得销量&#xff0c;而是有可能朝着相反的方向发展。那么&#xff0c;在这个与以往不同的双11&#xf…

电脑维修记录

记于2022年12月15日 今天把电脑修好了&#xff0c;总结这次经验&#xff1a; &#xff08;1&#xff09;无知者无畏&#xff0c;对任何事情都要抱有探索的精神&#xff0c;最遗憾的事情不是做错了&#xff0c;而是想做没去做 &#xff08;2&#xff09;将每次走错路的经历都…