JSON对象、字符串

1.使用数组拼接出如下字符串

var prod = { name: '女装', styles: ['短款', '冬季', '春装'] }; function getTpl(data){ //todo... }; var result = getTplStr(prod); //result为下面的字符串

女装
短款
冬季
春装

函数如下:
var prod = { name: '女装', styles: ['短款', '冬季', '春装'] }; function getTplStr(data){ var result = '
'+'
'+ '
'+data.name+'
'+'
'+ '
'+data.styles[0]+'
'+'
'+ '
'+data.styles[1]+'
'+'
'+ '
'+data.styles[2]+'
'; return result; } var result = getTplStr(prod); //result为下面的字符串 console.log(result);

2.写出两种以上声明多行字符串的方法
(1)直接声明
var lines = "hello world\nThis is javascript\nwelcome to jirengu"; console.log(result);

这种声明方法采用\n转义符进行回车,执行的结果是:
JSON对象、字符串
文章图片
屏幕快照 2017-01-12 下午2.19.40.png 缺点是声明方式不直观,对于大量的文本定义很难用
(2)多行分开声明
var lines = "hello world\n\ This is javascript\n\ welcome to jirengu"; console.log(lines);

执行结果是:
JSON对象、字符串
文章图片
屏幕快照 2017-01-12 下午2.27.00.png
line2,line3前面有很多空白,这是因为声明时就是这样子的,这种声明方法还有一个缺点,就是每行的末尾都需要增加回车转义符\n,另外如果当文本中存在引号"时,还要进行转义,特别是有很多引号“时,使用起来就很不方便了。
(3)使用数组定义,join连接
var lines = [hello world", "This is javascript","welcome to jirengu"].join("\n"); console.log(lines);

【JSON对象、字符串】运行结果:
JSON对象、字符串
文章图片
屏幕快照 2017-01-12 下午3.55.07.png
这种方法比较取巧,可以分开定义每行,回车转义符\n只需要写一次,算是比较方便,但是还是存在不直观的问题,还有也是每行中当存在引号”时还是需要进行转义。
3.以下代码输出什么?为什么
var str = 'jirengu\nruoyu' console.log(str.length)//13

因为'\n'为转义字符,算一个字符
4.写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
代码如下:
function isPalindrome(input){ var srcstr = input.toString(); var len = srcstr.length; var flag = true; for(var i = 0; i < (len-1)/2; i++){ if(srcstr.charAt(i)!=srcstr.charAt(len-i-1)){ flag = false; break; } } console.log(srcstr,'is',flag ? '是':'不是',"回文数"); return flag; } isPalindrome('abcdcba'); isPalindrome('abcdcbb'); isPalindrome(1234)

JSON对象、字符串
文章图片
屏幕快照 2017-01-12 下午4.35.39.png 5.写一个函数,统计字符串里出现出现频率最多的字符(如果有多个都需要展示)

    推荐阅读