js中多行字符串拼接
前言
我们会经常遇到这样的场景,需要拼接多行字符串,在字符串中动态插入一些数据以达到业务的需求。但是js中并没有标准的多行编辑的函数,于是聪明的程序员们便脑洞大开,书写出许多有趣的方法。

|
1
2
3
4
5
|
<div class="links">
<a href="http://qianlongo.github.io/">谦龙的博客</a>
<a href="http://aximario.github.io/">阿希的博客</a>
<a href="http://lingyu.wang/">天镶的博客</a>
</div>
|
对于上图的dom结构如果要在js中拼接,你会用什么组织方式呢?
1. 常规方式
|
1
|
var str = '<div class="links"><a href="http://qianlongo.github.io/">谦龙的博客</a><a href="http://aximario.github.io/">阿希的博客</a><a href="http://lingyu.wang/">天镶的博客</a></div>'
|
看到上面那一坨的代码,不知道您的心情是怎样的,反正我是完全没有心情看下去了,可读性太差了,于是乎为了写出可读性强的代码我们开始了下面的征程
2. 字符串相加形式
|
1
2
3
4
5
|
var str = '<div class="links">' +
'<a href="http://qianlongo.github.io/">谦龙的博客</a>' +
'<a href="http://aximario.github.io/">阿希的博客</a>' +
'<a href="http://lingyu.wang/">天镶的博客</a>' +
'</div>'
|
这种也许是我们用的很多的一种方式,简单灵活,可以直观地看出dom结构,但是写出来的代码犹如满天繁星一般,有些头晕目眩
3. 反斜杠
|
1
2
3
4
5
|
'<div class="links">\
<a href="http://qianlongo.github.io/">谦龙的博客</a>\
<a href="http://aximario.github.io/">阿希的博客</a>\
<a href="http://lingyu.wang/">天镶的博客</a>\
</div>'
|
4. 数组切割方式
|
1
|
[ '<div class="links">','<a href="http://qianlongo.github.io/">谦龙的博客</a>','<a href="http://aximario.github.io/">阿希的博客</a>','<a href="http://lingyu.wang/">天镶的博客</a>','</div>'].join('\n');
|
5. es6 方式
es6的到来给我们带来许多新的特性,其中有一部分是关于模板字符串的,专门可以用来解决多行编辑的问题
|
1
2
3
4
5
|
`<div class="links">
<a href="http://qianlongo.github.io/">谦龙的博客</a>
<a href="http://aximario.github.io/">阿希的博客</a>
<a href="http://lingyu.wang/">天镶的博客</a>
</div>`
|
注意第一个和最后一个” ` “符号,整段代码干净简洁,太舒服了有木有
6. 黑魔法 function.toString()
|
1
2
3
4
5
6
7
8
9
10
11
|
function toSting(fn){
return fn.toString().split('\n').slice(1,-1).join('\n') + '\n';
}
document.body.innerHTML = toString(function(){/*
<div class="links">
<a href="http://qianlongo.github.io/">谦龙的博客</a>
<a href="http://aximario.github.io/">阿希的博客</a>
<a href="http://lingyu.wang/">天镶的博客</a>
</div>
*/})
|
总结
方法会有很多,适合自己的,适合解决实际问题的方法才是最好的方法。
js中多行字符串拼接的更多相关文章
- js中定义用字符串拼接起来的变量名的变量
用对象的形式 你的问题可以通过js的对象实现 var ovar = {}; for(var i=0;i<10;i++){ ovar['var_'+i]=''; } 3用数组的形式 var arr ...
- 使用“\n\t”将多行字符串拼接起来
以前js拼接字符串有好多 \n \t 不使用ES6 使用"\n\t"将多行字符串拼接起来: var roadPoem = 'Then took the other, as just ...
- [转]JS中对象与字符串的互相转换
原文地址:http://www.cnblogs.com/luminji/p/3617160.html 在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: thr ...
- JS中对象与字符串的互相转换
在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON ...
- Js中常用的字符串,数组,函数扩展
由于最近辞职在家,自己的时间相对多一点.所以就根据prototytpeJS的API,结合自己正在看的司徒大神的<javascript框架设计>,整理了下Js中常用一些字符串,数组,函数扩展 ...
- 为什么阿里巴巴不建议在for循环中使用"+"进行字符串拼接
字符串,是Java中最常用的一个数据类型了.关于字符串的知识,作者已经发表过几篇文章介绍过很多,如: Java 7 源码学习系列(一)--String 该如何创建字符串,使用" " ...
- 不建议在for循环中使用”+”进行字符串拼接
https://mp.weixin.qq.com/s/qG6bdhndAip9s-_XM9oP3A 为什么阿里巴巴不建议在for循环中使用”+”进行字符串拼接 互联网后端架构 1周前
- js与多行字符串
JS里并没有标准的多行字符串的表示方法,但是在用模板的时候,为了保证模板的可阅读性,我们又不可避免的使用多行字符串,所以出现了各种搞法,这里以一段jade的模板作为示例,简单总结和对比一下. 字符串相 ...
- js中使用进行字符串传参
在js中拼接html标签传参时,如果方法参数是字符串需要加上引号,这里需要进行字符转义 <a href='javascript:addMenuUI("+"\"&qu ...
随机推荐
- Linux学习-开机过程的问题解决
忘记 root 密码的解决之道 新版的 systemd 的管理机制中,默认的 rescue 模式是无法直接取得 root 权限的喔!还是得要 使用 root 的密码才能够登入 rescure 环境.没 ...
- Hive中集合类型
Hive中集合类型 创建表,集合是以 - 分割的 数据文件 加载数据 查询数据 查询数组中第一个字段 再建一个表,使用map 查看数据文件 加载数据 查询数据 查询键值 创建表,struct类型 查看 ...
- luogu2865 [USACO06NOV]路障Roadblocks 次短路
注意:如果是这么个写法,堆数组要开成n+m的. 为什么呢?设想一下从1到2有m条长度递减的路,这岂不是要入队m次-- #include <algorithm> #include <i ...
- 如何让ie8/ie7/ie6支持html5的<footer></footer><nav></nav>等标签
使用他们能让代码语义化更直观,而且更方便SEO优化.但是此HTML5新标签在IE6/IE7/IE8上并不能识别,需要进行JavaScript处理.以下就介绍几种方式. 方式一:Coding JavaS ...
- CodeM初赛B轮
做什么啊,我这么菜,应该弃赛的 [编程|1500分] 子串 时间限制:3秒空间限制:32768K 题目描述 给出一个正整数n,我们把1..n在k进制下的表示连起来记为s(n,k),例如s(16,16) ...
- 设计模式(一)单例模式:实现 Serializable 接口之后的额外操作
思想: 一个单例类,无论采取哪一种设计(单元素枚举类除外), 一旦间接或者直接实现 Serializable 接口,为了保证单例,就要多增加一点考虑:保证类在反序列化之后能够保证单例. public ...
- 将模型储存到本地-FastCoder
// // ViewController.m // 模型转data储存 // // Created by 谭启宏 on 16/3/4. // Copyright © 2016年 tqh. All ri ...
- 【bzoj4800】[Ceoi2015]Ice Hockey World Championship 折半搜索
题目描述 有n个物品,m块钱,给定每个物品的价格,求买物品的方案数. 输入 第一行两个数n,m代表物品数量及钱数 第二行n个数,代表每个物品的价格 n<=40,m<=10^18 输出 一行 ...
- 【bzoj3744】Gty的妹子序列 分块+树状数组+主席树
题目描述 我早已习惯你不在身边, 人间四月天 寂寞断了弦. 回望身后蓝天, 跟再见说再见…… 某天,蒟蒻Autumn发现了从 Gty的妹子树(bzoj3720) 上掉落下来了许多妹子,他发现 她们排成 ...
- CS231n笔记 Lecture 1 Introduction
主题有关 这一讲主要是介绍性质的,虽然大多数概念以前听说过,但还是在他们的介绍中让我有如下一些认识,所谓温故而知新,不无道理: IMAGENET Feifei Li的团队首先爬取.标注了IMAGENE ...