1.使用数组拼接出如下字符串
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTpl(data){
//todo...
};
var result = getTplStr(prod); //result为下面的字符串
<dl class="product">
<dt>女装</dt>
<dd>短款</dd>
<dd>冬季</dd>
<dd>春装</dd>
</dl>
函数如下:
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTplStr(data){
var result = '<dl calss = "product">'+'<br/>'+
'<dt>'+data.name+'</dt>'+'<br/>'+
'<dt>'+data.styles[0]+'</dt>'+'<br/>'+
'<dt>'+data.styles[1]+'</dt>'+'<br/>'+
'<dt>'+data.styles[2]+'</dt>';
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转义符进行回车,执行的结果是:
屏幕快照 2017-01-12 下午2.19.40.png缺点是声明方式不直观,对于大量的文本定义很难用
(2)多行分开声明
var lines = "hello world\n\
This is javascript\n\
welcome to jirengu";
console.log(lines);
执行结果是:
屏幕快照 2017-01-12 下午2.27.00.pngline2,line3前面有很多空白,这是因为声明时就是这样子的,这种声明方法还有一个缺点,就是每行的末尾都需要增加回车转义符\n,另外如果当文本中存在引号"时,还要进行转义,特别是有很多引号“时,使用起来就很不方便了。
(3)使用数组定义,join连接
var lines = [hello world", "This is javascript", "welcome to jirengu"].join("\n");
console.log(lines);
运行结果:
屏幕快照 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)
屏幕快照 2017-01-12 下午4.35.39.png
网友评论