精华内容
下载资源
问答
  • javascript模板字符串(反引号) 模板字面量 是允许嵌入表达式的字符串字面量。 你可以使用多行字符串和字符串插值功能。它们在ES2015规范的先前版本中被称为“模板字符串”。 语法 `string text` ​ `string ...

    javascript模板字符串(反引号)

    >`num:${parseInt(`${1.00000+2.1}`)}`
    "num:3"

    模板字面量 是允许嵌入表达式的字符串字面量。

    你可以使用多行字符串字符串插值功能。它们在ES2015规范的先前版本中被称为“模板字符串”。

    语法

    `string text`
    ​
    `string text line 1
     string text line 2`
    ​
    `string text ${expression} string text`
    ​
    tag `string text ${expression} string text`

    描述

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

    `\`` === "`" // --> true

    多行字符串

    在新行中插入的任何字符都是模板字符串中的一部分,使用普通字符串,你可以通过以下的方式获得多行字符串:

    console.log('string text line 1\n' +
    'string text line 2');
    // "string text line 1
    // string text line 2"

    要获得同样效果的多行字符串,只需使用如下代码:

    console.log(`string text line 1
    string text line 2`);
    // "string text line 1
    // string text line 2"

    插入表达式

    在普通字符串中嵌入表达式,必须使用如下语法:

    var a = 5;
    var b = 10;
    console.log('Fifteen is ' + (a + b) + ' and\nnot ' + (2 * a + b) + '.');
    // "Fifteen is 15 and
    // not 20."

    现在通过模板字符串,我们可以使用一种更优雅的方式来表示:

    var a = 5;
    var b = 10;
    console.log(`Fifteen is ${a + b} and
    not ${2 * a + b}.`);
    // "Fifteen is 15 and
    // not 20."

    嵌套模板

    在某些时候,嵌套模板是具有可配置字符串的最简单也是更可读的方法。 在模板中,只需在模板内的占位符 ${ } 内使用它们,就可以轻松地使用内部反引号。 例如,如果条件 a 是真的,那么返回这个模板化的文字。

    一个普通字符串例子:

    var classes = 'header'
    classes += (false ?
       '' : true ?
         ' icon-expander' : ' icon-collapser');

    输出:header icon-expander

    在ES2015中使用模板文字而没有嵌套:

    var classes = `header ${ false ? '' :
    (true ? 'icon-expander' : 'icon-collapser') }`;

    输出:header icon-expander

    在ES2015的嵌套模板字面量中:

    var classes = `header ${ false ? '' :
    `icon-${true ? 'icon-expander' : 'icon-collapser'}` }`;

    输出:header icon-icon-expander

    带标签的模板字符串

    更高级的形式的模板字符串是带标签的模板字符串。标签使您可以用函数解析模板字符串。标签函数的第一个参数包含一个字符串值的数组。其余的参数与表达式相关。最后,你的函数可以返回处理好的的字符串(或者它可以返回完全不同的东西 , 如下个例子所述)。用于该标签的函数的名称可以被命名为任何名字。

    var person = 'Mike';
    var age = 28;
    ​
    function myTag(strings, personExp, ageExp) {
    ​
      var str0 = strings[0]; // "that "
      var str1 = strings[1]; // " is a "
    ​
      // There is technically a string after
      // the final expression (in our example),
      // but it is empty (""), so disregard.
      // var str2 = strings[2];
    ​
      var ageStr;
      if (ageExp > 99){
        ageStr = 'centenarian';
      } else {
        ageStr = 'youngster';
      }
    ​
      return str0 + personExp + str1 + ageStr;
    ​
    }
    ​
    var output = myTag`that ${ person } is a ${ age }`;
    ​
    console.log(output);
    // that Mike is a youngster

    标签函数并不一定需要返回一个字符串。可以返回其他数据类型,比如数组、json等

    原始字符串

    在标签函数的第一个参数中,存在一个特殊的属性raw ,我们可以通过它来访问模板字符串的原始字符串,而不经过特殊字符的替换。

    function tag(strings) {
      console.log(strings.raw[0]);
    }
    ​
    tag`string text line 1 \n string text line 2`;
    // logs "string text line 1 \n string text line 2" 

    另外,使用String.raw() 方法创建原始字符串和使用默认模板函数和字符串连接创建是一样的。

    var str = String.raw`Hi\n${2+3}!`;
    // "Hi\n5!"
    ​
    str.length;
    // 6
    ​
    str.split('').join(',');
    // "H,i,\,n,5,!"
    
    

    研究了一下,其实模板字符串中的占位符${expression}相当于分隔符,将模板字符串分割,

    function tag(strings) {
    console.log(strings.raw[0]);
    ​
    console.log(strings.raw[1]);
    ​
    console.log(strings.raw[2]);
    }
    ​
    tag`${document.cookie}`;
    //0,1都是空,3是undefined
    tag`aaa${document.cookie}`;
    //0是aaa,1是空,3是undefined
    tag`aaa${document.cookie}bbb`;
    //0是aaa,1是bbb,3是undefined
    tag`aaa${document.cookie}bbb${document}ccc`;
    //0是aaa,1是bbb,3是ccc

    从上面例子可以看出占位符${expression}相当于分隔符,将模板字符串分割。

    带标签的模板字面量及转义序列

    自ES2016起,带标签的模版字面量遵守以下转义序列的规则:

    • Unicode字符以"\u"开头,例如\u00A9

    • Unicode码位用"\u{}"表示,例如\u{2F804}

    • 十六进制以"\x"开头,例如\xA9

    • 八进制以""和数字开头,例如\251

     

    注:八进制好像不管用

    参考资料

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/template_strings

    分类: Web前端

    展开全文
  • JS 反引号``(模板字符串)用法

    千次阅读 2021-04-08 16:16:18
    JS 反引号``(模板字符串)用法。

    1 模板字符串

      模板字符串相当于加强版的字符串,用反引号 `,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。

    2 基本用法

    模板字符串中的换行和空格都是会被保留的

    <script>
            // var a = `3"\n"4`;
            var a = `3,
         4`;//模板字符串中的换行和空格都是会被保留的
            //         var a = "3,
            // 4"; //而双/单引号不行  会提示错误
            console.log(a);
    

    控制台显示:在这里插入图片描述

      字符串插入变量和表达式。
      变量名写在 ${} 中,${} 中可以放入 JavaScript 表达式。

            let name = "┏(^0^)┛";
            let age = 7;
            let info = `我是${name},我${age + 1}岁了。`
            console.log(info);
    

    控制台显示:在这里插入图片描述
    这个时候:

            let info = `我是${name},我${age + 1}岁了。`
            //等价于:
            let info="我是"+name+",我"+(age+1)+"岁了。"
    

    3 标签模板

      标签模板,是一个函数的调用,其中调用的参数是模板字符串。

            alert`Hello world!`;
            // 等价于
            alert('Hello world!');
    

      当模板字符串中带有变量,会将模板字符串参数处理成多个参数。

           function f(stringArr, ...values) {
                let result = "";
                for (let i = 0; i < stringArr.length; i++) {
                    result += stringArr[i];
                    if (values[i]) {
                        result += values[i];
                    }
                }
                return result;
            }
            let name = '哥斯拉';
            let age = 1000;
           var aa= f`我是${name},我${age + 1}岁了。`;
           console.log(aa);
           // "我是 哥斯拉,我 1001 岁了。"
    
            f`我是${name},我${age + 1}岁了。`;
            // 等价于
            f(['我是',',我 ',' 岁了。'],'哥斯拉',1001);
    

    输出:在这里插入图片描述

    4 把css写在js中

    css in js具体看react…

        function test(...args) {//剩余参数 展开运算符
            console.log("test函数执行了")
            console.log(args)
        }
            test`
            font-size:50px;
            color:red;
        `
    
    展开全文
  • 在markdown中转义反引号 &#96; 表示一个反引号 `范德萨 在代码段中打印反引号 两个反引号 空格 反引号uvm 空格 两个反引号 `uvm

    在markdown中转义反引号
    &#96; 表示一个反引号
    `范德萨

    在代码段中打印反引号
    两个反引号 空格 反引号uvm 空格 两个反引号
    `uvm

    展开全文
  • MySQL 大小敏感 ​ 因为近期工作上的要求, 需要对之前代码进行重新排查. 由于开发人员换了一批又一批, 每个人有自己的习惯, 没有形成良好的规范, 例如大小问题等等, 今日就简单探究一下数据库语言的大小敏感...

    MySQL 大小写敏感

    ​ 因为近期工作上的要求, 需要对之前代码进行重新排查. 由于开发人员换了一批又一批, 每个人有自己的习惯, 没有形成良好的规范, 例如大小写问题等等, 今日就简单探究一下数据库语言的大小写敏感问题.

    MySQL

    ​ 平时写 SQL 语句时, 并没有感觉到大小写的区别, 那么意味着 MySQL 大小写不敏感吗?
    答案是否定的. MySQL 在 Windows 下大小写不敏感,但在 Linux 下默认大小写敏感.
    (说着有点绕口,简言之, 敏感就是区分大小写, 不敏感就是无论大写小写都行)
    如何控制大小写敏感 ( 在 my.ini 文件中可修改)

    MySQL 控制库名、表名大小写敏感的参数是: lower_case_table_names
    lower_case_file_system  	ON(不敏感)   OFF(敏感)   
    		文件名是否区分大小写(只读不可改), windows不区分, linux区分;
    lower_case_table_names 		0 (敏感)     1(不敏感)     2(不敏感)
    		参数对应的默认系统 	  linux       windows      MAC OS X
    0 : 在磁盘中就按照给定的大小写进行存储, 查询时同样按照给定大小写执行SQL
    1 : 在磁盘中按照小写存储, 查询时也会将SQL转化为小写再执行
    2 : 在磁盘中就按照给定的大小写进行存储, 查询时将SQL转化为小写执行
    

    ​ 就现在而言 MySQL 使用场景在 linux 居多( 默认是 OFF,0 ), 通常都是在 Windows 本机( 默认是 ON,1 ) 测试, 然后将其部署在 Linux 上运行. 在此类情况下通常会出现开发程序在操作系统之间不兼容的情况. 例如:

    1. 在 windows 操作系统上 set lower_case_table_names = 1 ;
    2. create table STUdent (...);
    3. 在 windows 上编写查询程序 select * from STUdent; (可以查询)
    4. 将程序部署在 Linux 中就会出错:
    	因为在 windows 上已经完成按照小写进行存储,此时存在磁盘中的表就是 student !
    	由于 windows 将你写的查询语句转化成小写来执行,select * from STUdent 可以查询; 
    	但是在 Linux 中, 是使用给定大小写执行查询语句,select * from STUdent 去查询在磁盘中已经存在的小写的表 student, 故报错 `STUdent` doesn't exists!
    5. 将属性 set lower_case_table_names = 0 ,同理;
    

    故, 修改lower_case_table_names参数容易导致兼容性问题

    Oracle

    ​ Oracle的数据字典中,对表名和字段名的存储默认使用大写, 但是也允许小写;
    ​ 执行语句时不分大小写的原因是:
    ​ oracle先解析SQL语句,把小写的字母转换成大写的再执行;
    ​ 故, 出于优化建议, SQL 语句通常使用大写.

    结论

    ​ 综上, 我们在开发中应该保持严谨的态度, 按照大小写敏感的原则去进行开发. 这样可以使开发的程序在不同操作系统中更具生命力.

    例如, 阿里开发手册中对于建库建表的规范要求:

    【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只
    出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。
    说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表名、字段名,都不允许出现任何大写字母,避免节外生枝。
    正例:aliyun_admin,rdc_config,level3_name
    反例:AliyunAdmin,rdcConfig,level_3_name
    

    拓展

    ​ 为了解释 oracle 同样支持小写, 索性将 单引号、双引号、反引号在 MySQL 与 Oracle 中的区别总结一番

    MySQL
    单引号:将字符串常量括起来,若常量本身带有单引号,除了转义,还可以使用双引号整体括起;
    	'student' 
    	stu'dent转义: 'stu\'dent' 或 'stu''dent'(单引号对其转义)
    	stu'dent双引号括起: "stu'dent" 
    双引号:将字符串常量括起来,若常量本身带有双引号,除了转义,还可以使用单引号整体括起;
    	say:"Hello"的转义: "say:\"Hello\"" 或"say:""Hello"""(两个双引分别转义)
        say:"Hello"单引号括起: 'say:"Hello"'
        注: mysql中双引号引用在某些版本中会报错,为了避免,尽量使用单引号来操作字符串!
    反引号:区别保留字(就是关键字)与普通字符的符号;
    	create table desc;   报错
    	create table `desc`; 创建成功
    	注:即使表名和字段名不是数据库保留字,尽可能也养成加上反引号的好习惯,这也可以避免错误,保证开发的顺利进行
    
    Oracle
    单引号:将字符串常量括起来;
    双引号:强制区分大小写,就是之前提出 Oracle 同样支持小写;
    	CREATE TABLE "StUdEnT" (...);
    	建表时使用双引号严格指定大小写,在查询时就要使用相同的方式,如下,否则报错
    	SELECT * FROM "StUdEnT";
    反引号:  不存在
    
    展开全文
  • Golang 单引号、双引号和反引号

    千次阅读 2020-03-06 00:21:05
    文章目录前言1 概述2 示例3 反引号的应用场景,为了展示字面量4 小结END 前言 我正在学习酷酷的 Golang,可点此查看帖子Golang学习笔记汇总。 1 概述 Golang限定字符或者字符串一共三种引号,单引号(’’),双...
  • Js反引号遍历数值

    2019-10-14 16:39:03
    <div class="rol"> </div> var list = [ { 'one': '一等奖', 'two': '111', 'three': '500' }, { 'one': '二等奖', 'two': '222', 'three': '600' }, { 'one': '三等奖'...
  • JS 单引号、双引号与反引号的区别

    千次阅读 2021-01-15 11:43:58
    每一个编程语言都有引号,但作用和用法略有区别。JS 也存在单引号、双引号与反引号
  • 我们都知道如何在 Markdown 中使用反引号 ` 来包裹一段代码。无论是内联的代码还是单独的代码块,都需要使用它,只是个数的差别,比如 ` 和 ```````````。 那么如何能够在代码片中输入反引号(backtick)呢? 方法...
  • 模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。 // 字符串中嵌入变量 var name = "Bob", time = "today"; `...
  • php中``反引号的作用

    2021-07-10 15:07:52
    文章目录一、反引号的...为了保险起见,我们建议在所有字段中都加上反引号,即上面的SQL建议成 $sql = "select `user`,`username` from `Content`"; 2.反引号还有种功能是执行系统命令,比如: echo `ipconfig` .
  • 一个方法 function aa(s, a , b) { console.log(s); console.log(a); console.log(b); } 然后调用这个方法 var q = 10; aa `abc ${q}` 会发现得到结果 ["abc ", "", raw: Array(2)] //这个结果是相当于将...
  • 反引号 反引号:反引号一般在Esc键的下方,为了区分MySQL的保留字与普通字符而引入的符号。 一般我们建表时都会将表名,库名都加上反引号来保证语句的执行度。 例如: SELECT * FROM `user` WHERE username LIKE '%王...
  • ES6模板字符串,即反引号(`)之详解

    千次阅读 多人点赞 2020-03-02 13:21:39
    模板字符串(template string)也就是模板字面量,是增强版的字符串,用反引号(`)来表示。它既可以当作普通字符串来使用,也可以在字符串中嵌套变量。 注意:在模板字符串中嵌入变量的时候,需要将变量名在${}...
  • 在网上一搜一大堆,摘抄一个的比较好的内容如下: (原地址: https://blog.csdn.net/iamlaosong/article/details/54728393) 1、由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会...
  • 反引号怎么打

    万次阅读 2017-02-07 14:38:10
    博客的时候,如果想要把这一类的标签打出来,就要用到反引号。这个符号在哪里呢。 在键盘上,它位于左上角,数字1键的右边、Esc键的下方。在英文输入法下,直接按这个键,打出来的就是反引号 ` (中文输入法中,...
  • 优点: 1、可以解析变量 var name = `张三` var sayHello = `Hello,我的名字叫${name}` console.log(sayHello) // Hello,我的名字叫张三 2、可以换行 let obj = { name: 'zs', age: 18 ... ...
  • 为了增强可读性,大家都喜欢将很长的本来可以一行完的脚本分割成多行。 代码如下: Get-Service | Where-Object { $_.Status -eq ...但是还有一种情况,你可能想随时都可以给脚本换行,可以使用反引号(它是PowerS
  • es6最新语法糖写法,可以不用单引号+双引号拼接的形式,而是直接$加上大括号引用参数就可以了
  • 在看别人的js代码时候,发现有些字符串是``反引号,而不是’'单引号,或者""双引号。查阅后发现这个叫做模板字符串。 在其它语言中,使用模板和插入值是在字符串里面输出变量的一种方式。因此,在ES5,我们可以这样...
  • 0.mysql报错如下 错误代码: 1064 You have an error in your SQL syntax;...最常见的是因为表名或字段名添加了双引号或单引号,不加引号或者加反引号即可。 错误代码: 单引号 CREATE TABLE 'T_ROLE' ( 'ID'
  • 字符串与引号 Shell 的模型就是标准的字符流过滤器模型,简单来说,就是一条命令把结果送到标准 输出,这个标准输出被连接到下一个命令的标准输入,由此来实现一系列命令...其中除反引号(` `)用于命令外,前两种都用于字符
  • 单引号,反引号,双引号 数据库环境:mysql,oracle,plsql 单引号 SQL使用单引号来环绕文本值。 如果是数值,就不要用引号。 Varchar类型(或String,字符串类型)这一些在数据库语句中使用的时候就用单引号. 反引号 它...
  • 解析三个反引号python3-markdown默认有些扩展未开启,导致类是三个反引号(“`)包含的代码块无法解析markdown.markdown(text, extensions=['markdown.extensions.extra'])或者markdown.markdown(text, ['extra'])...
  • 引号,双引号的使用 :@Component{ select:'my-app', template:` <h2>hello `, style:` h2{ color:red; } ` } 在使用到相关标签语法的使用就不能使用单引号,双引号了,使用的ESC键的下面这个符号’’,...
  • $( )与` `(反引号) 在bash shell中,$( )与` `(反引号)都是用来做命令替换(command substitution)用的。 命令替换: echo pwd 这里的pwd就是一个字符串不是命令,所以输出的就是pwd这个字符串,$()和...
  • JS中的``引号

    2021-04-02 15:55:21
    ES6中新增的字符串方法,可以配合引号完成拼接字符串的功能 引号怎么打出来:将输入法调整为英文输入法,单击键盘上数字键1左边的按键。 示例代码 <script type="text/javascript"> var str =` ...
  • 【shell】反引号(`)与$()的作用与区别

    千次阅读 2017-03-23 10:26:39
    linux下的反引号(`)和$()执行的是命令替换的功能。 1、将命令的执行结果赋给一个变量 反引号: DATE=`date` //变量=`命令` echo $DATE 执行结果为: [lzk@bogon Signal_shell]$ sh -x...
  • 就是能直接执行的,像关闭电脑,注销关闭电脑,刚开始学习,希望大家不吝赐教

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,395
精华内容 38,558
关键字:

反引号怎么写