1时鸵、使用數(shù)組拼接出如下字符串
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>
function getTplStr(data) {
var str = "";
for (var key in data) {
if (typeof data[key] === "object") {
var newObj = [];
for (var i = 0; i < data[key].length; i++) {
str = str + "\t<dd>" + newObj.push(data[key][i]) + "<dd>\n"
}
} else {
str = str + "\t<dt>" + data[key] + "<dt>\n"
}
}
return '<dl class="product">' + "\n" + str + '<dl>';
};
var result = getTplStr(prod);
console.log(result)
var prod = {
name: '女裝',
styles: ['短款', '冬季', '春裝']
};
function getTplStr(data) {
var arr=[];
arr.push('<dl class="product">\n')
arr.push('\t<dt>'+data.name+'</dt>\n')
for(var key in data.styles){
arr.push('\t<dd>'+data.styles[key]+'</dd>\n');
}
arr.push('</dl>');
return arr.join("")
};
var result = getTplStr(prod);
console.log(result)
2、寫出兩種以上聲明多行字符串的方法
利用連接運(yùn)算符(+)可以連接多個(gè)單行字符串曹体,用來模擬多行字符串俗扇。
var strs = "long "
+"long "
+"long "; // "long long long "
利用多行注釋,生成多行字符串的變通方法箕别。
利用 .toString()方法類型轉(zhuǎn)換為字符串铜幽,利用.split('\n')方法,用空格分割成子字符串串稀,轉(zhuǎn)化為數(shù)組除抛,利用 .slice(1,-1) 方法,由子字符串的“ 1 ”位置開始母截,到最后一個(gè)位置之前到忽,得到一個(gè)新的數(shù)組。再利用.join("")方法清寇,將所有元素喘漏,連接成一個(gè)字符串。
示例:
(function () { /*
line 1
line 2
line 3
*/}).toString().split('\n').slice(1,-1).join("")
3颗管、補(bǔ)全如下代碼,讓輸出結(jié)果為字符串: hello\\饑人谷
var str =' hello\\\\饑人谷';
console.log(str)
4陷遮、以下代碼輸出什么?為什么
var str = 'jirengu\nruoyu'
console.log(str.length)
結(jié)果:數(shù)值13;
var str = 'jirengu\nruoyu'
console.log(str)
輸出字符串
' jirengu ruoyu'
length屬性返回字符串的長(zhǎng)度垦江。str.length返回值是13帽馋。
5、寫一個(gè)函數(shù)比吭,判斷一個(gè)字符串是回文字符串绽族,如 abcdcba是回文字符串, abcdcbb不是
function isPalindrome(string){
return string===string.split().reverse().join("")
}
isPalindrome('abcdcba')// true
.split()方法是將String對(duì)象轉(zhuǎn)化為一個(gè)字符串?dāng)?shù)組;
.reverse()方法衩藤,顛倒數(shù)組中元素的位置吧慢。第一個(gè)元素會(huì)成為最后一個(gè),最后一個(gè)會(huì)成為第一個(gè)赏表。检诗;
join(''")方法將數(shù)組的所有元素連接到一個(gè)字符串中匈仗。
6、寫一個(gè)函數(shù)逢慌,統(tǒng)計(jì)字符串里出現(xiàn)出現(xiàn)頻率最多的字符
var str1 = 'hello pralindrom hell';
//fn(str1);
function fn(str){
var dirc = {};
for (var i = 0; i < str.length; i++) {
if (dirc[str[i]]) {
++dirc[str[i]]
} else {
dirc[str[i]] = 1;
}
}
var count = 0;
for (var key in dirc) {
if (dirc[key] > count) {
var maxcharset = key;
count = dirc[key];
}
}
//return maxcharset;
//return count;
console.log(maxcharset,count)
}
console.log(fn(str1))
7悠轩、寫一個(gè)camelize函數(shù),把my-short-string形式的字符串轉(zhuǎn)化成myShortString形式的字符串攻泼,如
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
var str1 = 'my-short-string'
function camlize(str) {
for (var i = 0; i < str.length; i++) {
if (str[i] === '-') {
var str3 = str.substr((i + 1), 1).toUpperCase();
var str4 = str4 + str3;
i++;
} else {
if (str4 === undefined) { //1 **代碼優(yōu)化火架,在for循環(huán)之前加個(gè)**
var str4 = str[i] //2 var str4 = "";
} else { //3
str4 = str4 + str[i] //4, 換成str4 +=str[i];
}
}
}
return str4
}
camlize(str1);
console.log(camlize(str1))
這題寫了一個(gè)多小時(shí)忙菠,邊寫邊改何鸡,終于改對(duì)了。突然發(fā)現(xiàn)牛欢,編程就是一個(gè)編寫邊改的過程骡男,痛苦的是不知道怎么改,要想好久氢惋。
8洞翩、寫一個(gè) ucFirst函數(shù)稽犁,返回第一個(gè)字母為大寫的字符 ()*
ucFirst("hunger") == "Hunger"
var str1 = "hunger"
function ucFirst(str){
var str2 = str.slice(0, 1).toUpperCase()+str.slice(1);
return str2;
}
var str2=ucFirst(str1)
console.log(str2)
9焰望、寫一個(gè)函數(shù)truncate(str, maxlength), 如果str的長(zhǎng)度大于maxlength,會(huì)把str截?cái)嗟絤axlength長(zhǎng)已亥,并加上...熊赖,如
var str1 = "hello, this is hunger valley,";
var str2 = "hello world"
truncate(str1, 10)
truncate(str2, 20)
function truncate(str, maxlength) {
if (str.length > maxlength) {
var str = str.slice(0, maxlength).concat('...');
} else {
var str = str.slice(0, maxlength)
}
return str;
}
var str3 = truncate(str1, 10)
var str4 = truncate(str2, 20)
console.log(str3)
console.log(str4)
10、什么是 json虑椎?什么是 json 對(duì)象震鹉?什么是 json 對(duì)象字面量?什么是 JSON內(nèi)置對(duì)象捆姜?
JSON:(JavaScript Object Notation的縮寫)是一種用于數(shù)據(jù)交換的文本格式传趾。
JSON格式有兩個(gè)顯著的優(yōu)點(diǎn):書寫簡(jiǎn)單,一目了然泥技;符合JavaScript原生語法浆兰,可以由解釋引擎直接處理,不用另外添加解析代碼珊豹。
JSON對(duì)象就是一個(gè)值簸呈。要么是簡(jiǎn)單類型的值,要么是復(fù)合類型的值店茶,但是只能是一個(gè)值蜕便,不能是兩個(gè)或更多的值。
JSON對(duì)值的類型和格式有嚴(yán)格的規(guī)定贩幻。
1轿腺、復(fù)合類型的值只能是數(shù)組或?qū)ο罅阶欤荒苁呛瘮?shù)、正則表達(dá)式對(duì)象族壳、日期對(duì)象溶诞。
2、簡(jiǎn)單類型的值只有四種:字符串决侈、數(shù)值(必須以十進(jìn)制表示)螺垢、布爾值和null(不能使用NaN, Infinity, -Infinity和undefined)。
3赖歌、字符串必須使用雙引號(hào)表示枉圃,不能使用單引號(hào)。
4庐冯、對(duì)象的鍵名必須放在雙引號(hào)里面孽亲。
5、數(shù)組或?qū)ο笞詈笠粋€(gè)成員的后面展父,不能加逗號(hào)返劲。
json對(duì)象字面量
json對(duì)象字面量是一種簡(jiǎn)單的聲明生成json的方式,形式是一個(gè)無序的“名稱/值對(duì)”集合栖茉。一個(gè)json對(duì)象以“{”(左括號(hào))開始篮绿,“}”(右括號(hào))結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào))吕漂;“名稱/值對(duì)”之間使用“,”(逗號(hào))分隔亲配。
JSON內(nèi)置對(duì)象
JSON內(nèi)置對(duì)象是用來處理JSON格式數(shù)據(jù)。它有兩個(gè)方法:JSON.stringify()和JSON.parse()惶凝。
JSON.stringify方法用于將一個(gè)值轉(zhuǎn)為字符串吼虎。該字符串符合 JSON 格式,并且可以被JSON.parse方法還原苍鲜。
JSON.parse方法用于將JSON字符串轉(zhuǎn)化成對(duì)象思灰。
11、如何把JSON 格式的字符串轉(zhuǎn)換為對(duì)象混滔?如何把對(duì)象轉(zhuǎn)換為 JSON 格式的字符串?
JSON.parse方法用于將JSON字符串轉(zhuǎn)化成對(duì)象洒疚。
JSON.stringify方法用于將一個(gè)值轉(zhuǎn)為字符串。
示例:
JSON.parse('{"foo":12,"nihao":"yy"}')
Object {foo: 12, nihao: "yy"}
JSON.stringify({foo: 12, nihao: "yy"})
"{"foo":12,"nihao":"yy"}"