js高级之|ES6字符串模板、剩余参数和symbol

目录

1. 字符串模板``的使用

2. 标签模板字符串

3. 函数的默认参数

6. 函数的剩余参数:...params

7. 箭头函数的补充

8. 展开语法:...names

9. 数值的表示

10. symbol的基本使用


1. 字符串模板``的使用

在ES6之前,如果我们想要将字符串和一些动态的变量(标识符)拼接到一起,是非常麻烦和丑陋的(ugly)。

ES6允许我们使用字符串模板来嵌入JS的变量或者表达式来进行拼接:

  • 首先,我们会使用 `` 符号来编写字符串,称之为模板字符串;
  • 其次,在模板字符串中,我们可以通过 ${expression} 来嵌入动态的内容;
//原来多定义引引加加
console.log("my name is " + name + ", age is " + age + ", height is " + height)

// ES6提供模板字符串 ``
const message = `my name is ${name}, age is ${age}, height is ${height}`

        ${        }         内部还能进行计算或者调用函数

1. 计算式

const info = `age double is ${age * 2}`

2. 函数

function doubleAge() {

return age * 2

}

const info2 = `double age is ${doubleAge()}`

2. 标签模板字符串

def:在函数后面加上字符串进行调用,称之为标签模板字符串        foo``

// 第一个参数依然是模块字符串中整个字符串, 只是被切成多块,放到了一个数组中
// 第二个参数是模块字符串中, 第一个 ${}
function foo(m, n, x) {
  console.log(m, n, x, '---------')
}

const name = "why"
const age = 18

foo`Hello${name}Wo${age}rld`// ['Hello', 'Wo', 'rld'] why ------

开发中很少用,但是在框架比如react中有常用,有助于看框架源码。

3. 函数的默认参数

在ES6之前,我们编写的函数参数是没有默认值的,所以我们在编写函数时,如果有下面的需求:

  1. 传入了参数,那么使用传入的参数;
  2. 没有传入参数,那么使用一个默认值;

1. 而在ES6中,我们允许给函数一个默认值:

// ES5以及之前给参数默认值
/**
 * 缺点:
 *  1.写起来很麻烦, 并且代码的阅读性是比较差
 *  2.这种写法是有bug
 */
function foo1(m, n) {
  m = m || "aaa"
  n = n || "bbb"//给默认值的目的是防止出现undefined
  console.log(m, n)
}
foo1()//aaa bbb
foo1(0,"")//依旧是aaa bbb,出现bug

// 1.ES6可以给函数参数提供默认值
//直接在定义函数时给形参赋值默认值
function foo(m = "aaa", n = "bbb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值