1、使用数组拼接出如下字符串。
<script>
function getTpl(data){
var a = "";
for(var key in data){
if(typeof data[key] === "string"){
a = a + "\t" + "<dt>" + data[key] + "</dt>" + "\n";
}else{
for(var i = 0; i < data[key].length;i++){
a = a + "\t" + "<dd>" + data[key][i] + "</dd>" + "\n";
}
}
}
return '<dl class="product">' + "\n"+ a + "</dl>";
}
var result = getTpl(prod);
console.log(result);
</script>
<dl class="product">
<dt>女装</dt>
<dd>短款</dd>
<dd>冬季</dd>
<dd>春装</dd>
</dl>
2、写出两种以上声明多行字符串的方法。
-
如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠。
var longString = "Long \ long \ long \ string"; longString // "Long long long string"
-
连接运算符(+)可以连接多个单行字符串,用来模拟多行字符串。
var longString = 'Long ' + 'long ' + 'long ' + 'string';
-
另外,有一种利用多行注释,生成多行字符串的变通方法
(function () { /* line 1 line 2 line 3 */}).toString().split('\n').slice(1,-1).join('\n') // "line 1 line 2 line 3"
3、补全如下代码,让输出结果为字符串: hello\饥人谷
var str = "hello\\\\饥人谷"
console.log(str)
4、以下代码输出什么?为什么?
var str = 'jirengu\nruoyu'
console.log(str.length)
13,因为转义字符虽然使用了\n换行但是空格并没有算在长度里面,相反转义字符占据了一个占位符.
5、写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
var str1 = 'abcdcba'
var str2 = 'abcdcbb'
function fn(str){
var newStr = str.split('').reverse().join('')
if(str === newStr){
return('是回文')
}else{
return('不是回文')
}
}
fn(str1)//是回文
fn(str2)//不是回文
6、写一个函数,统计字符串里出现出现频率最多的字符
<script>
var str='hello world heheduoduo'
var dict={}
for(var i=0; i<str.length;i++){
if(dict[str[i]]){
++dict[str[i]]
}else{
dict[str[i]]=1
}
}
var count=0
var maxValue
for(key in dict){
if(dict[key]>count){
maxValue=key
count=dict[key]
}
}
console.log(count,maxValue)
</script>
写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
function camelize(str){
var arr = str.split("-");
var newArr = [];
newArr[0] = arr[0];
for(var i = 1;i < arr.length;i++){
newArr.push( arr[i][0].toUpperCase() +arr[i].slice(1));
}
return newArr.join("");
}
var str = "happy-new-year";
console.log(camelize(str));
8、写一个 ucFirst函数,返回第一个字母为大写的字符 (***)
ucFirst("hunger") == "Hunger"
代码
var str = "hunger";
function ucFirst(str){
var str = str[0].toUpperCase() + str.slice(1);
return str;
}
console.log(ucFirst(str));
9、写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到
function truncate(str,maxlength){
if(str.length>maxlength){
var str2=str.slice(0,maxlength)
str2=str2+"...";
return str2;
}
else{
return str;
}
}
console.log(truncate("hello, this is hunger valley,", 10));
console.log(truncate("hello world", 20));
10、什么是 json?什么是 json 对象?什么是 json 对象字面量?什么是 JSON内置对象?
json是一种轻量级的数据交换格式。
json的对象由key,value组成,类似js的对象,但有所不同,比如在json对象里string用单引号是
不行的,对象的值必须是string,number,null,true,false,object,arry中的一种,这里的object是狭义上的object不是函数,时间,正则等对象。
JSON对象字面量以花括号开头和结尾。花括号内部类似于JS字面量。
JSON是javascript的内置对象,