• 浅浅研究模板字符串 ` `


    目录

    1.什么是模板字符串`   `

    1.1mdn的描述:

    1.2  模板字符串使用语法

    1.3 eval(`alert('hello')`  、eval([`alert('hello')`])和  eval(`[alert('hello1')]`)的区别

    2.为什么三个返回值不一样?

    3.eval`${prompt()}` 返回的是啥?为什么?



    1.什么是模板字符串`   `

    1.1mdn的描述:

           模板字符串使用反引号 (` `) 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符。占位符中的表达式和周围的文本会一起传递给一个默认函数,该函数负责将所有的部分连接起来,如果一个模板字符串由表达式开头,则该字符串被称为带标签的模板字符串,该表达式通常是一个函数,它会在模板字符串处理后被调用,在输出最终结果前,你都可以通过该函数来对模板字符串进行操作处理。在模版字符串内使用反引号(`)时,需要在它前面加转义符(\)。

    1.2  模板字符串使用语法

    1. `string text`
    2. `string text line 1
    3. string text line 2`
    4. `string text ${expression} string text`
    5. tag `string text ${expression} string text`
    6. //标签就是函数,紧跟在后面的模板字符串就是他的参数

    1.3 eval(`alert('hello')`  、eval([`alert('hello')`])和  eval(`[alert('hello1')]`)的区别

    eval(`alert('hello')` 实现了弹窗

      eval([`alert('hello')`])没有弹窗,返回的是一个字符型的数组

      eval(`[alert('hello1')]`)弹窗了

     

    2.为什么三个返回值不一样?

    这个问题就得去查询eval()的返回值

    eval() 函数会将传入的字符串当做 JavaScript 代码进行执行。

    如果 eval() 的参数不是字符串, eval() 会将参数原封不动地返回。

    如果你以字符串的形式构造了算术表达式,那么可以在后面用 eval()对它求值。

    eval 返回最后一个表达式的值。

    分析:

    eval(`alert('hello')` 和 eval(`[alert('hello1')]`) 

    都弹窗了所以返回的是alert()的返回值,而alert()没有返回值,所以eval()最后的返回值为空

    eval([`alert('hello')`])  没有弹窗返回的是一个字符型数组 

    因为eval()里面包含的就是一个数组所以原样返回了

    alert(变量名)

    alert()会在全局里面找,如果存在就打印,不存在就报错

    3.eval`${prompt()}` 返回的是啥?为什么?

    可以看出返回的是一个空数组

    eval`${abc,prompt()def}`

    1. ${ }是es6新增的字符串方法
      可以配合单反引号完成字符串拼接的功能

    2. 以上两个例子可以看出eval()的返回值为数组。模板字符串使用反引号 (` `) 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符

    3. 带标签的模板字符串返回的第一个参数为一个字符串值的数组,其余的参数是和${}的表达式有关的,而eval()只会接第一个返回值为参数,所以就打印出了数组​​​​​​​

  • 相关阅读:
    代码随想录训练营 dp
    【最长递增系列】动态规划法和贪心法
    iOS 事件响应链
    19.set和map
    2311rust,到38版本更新
    RK3588平台开发系列讲解(Thermal篇)Thermal介绍及用法
    使用VSCODE链接Anaconda
    使用 ionic + cordova + vue3 实现相册选择、拍照,并上传、预览图片
    jh7110 visionfive2 linux uboot debian
    学生个性化成长平台搭建随笔记
  • 原文地址:https://blog.csdn.net/lin152235/article/details/126277789