1.使用数组拼接出如下字符串
var prod = {
name: '女装',
styles: ['短款', '冬季', '春装']
};
function getTplStr(data){
var str = '';
str += '<dl class="product">\n';
str += '\t<dt>' + data.name + '</dt>\n';
for (var key in data.styles){
str += '\t<dd>' + data.styles[key] + '</dd>\n';
}
str += '</dl>';
return str;
};
var result = getTplStr(prod);
console.log(result);
// 输出
<dl class="product">
<dt>女装</dt>
<dd>短款</dd>
<dd>冬季</dd>
<dd>春装</dd>
</dl>
2.写出两种以上声明多行字符串的方法
//反斜杠‘\’换行法
var str = 'aaaa\
bbbb\
cccc\
dddd';
// 反斜杠‘\’后面不能有空格
console.log(str);
// aaaabbbbccccdddd
/*--------------------------------------------------------*/
// 字符串‘+’的拼接法
var str = 'aaaa' +
'bbbb' +
'cccc' +
'dddd' ;
console.log(str);
// aaaabbbbccccdddd
/*--------------------------------------------------------*/
// 函数的注释法
function fn(){/*
aaaa
bbbb
cccc
dddd
*/}
var str = fn.toString().split('\n').slice(1,length-1).join('');
/*toString() 把函数 fn 转化成字符串
split('\n') 把字符串以换行符‘\n’为切割点切割成数组
slice(1,-1) 把数组掐头去尾截取出来
join('') 把数组以空字符串''为连接点连接成字符串
*/
console.log(str)
// aaaabbbbccccdddd
3.补全如下代码,让输出结果为字符串: hello\饥人谷
var str = 'hello\\\\jirengu';
console.log(str);
// hello\\jirengu
4.以下代码输出什么?为什么
var str = 'jirengu\nruoyu'
console.log(str.length)
// 13 因为'\n'是一个换行符
5.写一个函数,判断一个字符串是回文字符串
// 代码1:用数组的 reverse() 倒叙法
var str = 'abcdedcba'
function isReverse(newStr){
return newStr === newStr.split('').reverse().join('')
}
isReverse(str) // true
/*split('') 把字符串每个字切割成数组元素
reverse() 把数组倒叙排列
join('')把数组连接成字符串
*/
/*--------------------------------------------------------*/
// 倒叙遍历数组的方法
var str = 'abcdedcba'
function isReverse(newStr){
var arr1 = [];
var arr2 = newStr.split('');
var i = 0;
for(var n = 0; n < arr2.length; n++){
arr1[i] = arr2[arr2.length-1-n];
i++;
}
return arr1.join('') === arr2.join(''); // arr1 和 arr2是数组,要连成字符串比较。
}
isReverse(str); // true
6.写一个函数,统计字符串里出现出现频率最多的字符
var str = 'hello world yhhhhhhh';
function fn(str){
var obj = {};
for(var i in str){
if(obj[str[i]]){
obj[str[i]]++;
}else{
obj[str[i]] = 1;
}
} /*把字符串统计成对象*/
var count = 0;
var maxValue;
for(var key in obj){
if(obj[key] > count){
count = obj[key];
maxValue = key;
}
} /*遍历对象寻找最大的键值和键名*/
return 'maxValue: ' + maxValue + '\n' + 'count: ' + count;
}
fn(str);
/*
"maxValue: h
count: 8"
*/
7.写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串
function camelize(str){
var arr = str.split('-');
var newArr = [];
for(var i in arr){
newArr[i] = arr[i].replace(arr[i][0],arr[i][0].toUpperCase())
}
newArr.join();
return newArr.join('');
}
camelize("my-short-string"); // "MyShortString"
camelize("background-color"); // "BackgroundColor"
camelize("list-style-image"); // "ListStyleImage"
8.写一个 ucFirst函数,返回第一个字母为大写的字符串
function ucFirst(str){
var newStr = str.replace(str[0], str[0].toUpperCase());
return newStr;
}
ucFirst("hunger") // "Hunger"
9.写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到maxlength长,并加上...
function truncate(str, maxlength){
if(str.length > maxlength){
return str.slice(0,maxlength) + "...";
}else{
return str;
}
}
truncate("hello, this is hunger valley,", 10);
// "hello, thi..."
truncate("hello world", 20);
// "hello world"