1.使用數(shù)組拼接如下字符串厚者,其中styles數(shù)組中的個(gè)數(shù)不確定
var prod = {
name: '女裝',
styles: ['短款', '冬季', '春裝']
};
function getTplStr(data){
var arr = [];
arr.push('<dl class="product">');
var dt = '<dt>' + data.name + '</dt>';
arr.push(dt);
for(var i = 0; i < data.styles.length; i++){
var dd = '<dd>' + data.styles[i] + '</dd>';
arr.push(dd);
}
arr.push("</dl>");
var str = arr.join("");
return str;
};
var result = getTplStr(prod); //result為下面的字符串
<dl class="product"><dt>女裝</dt><dd>短款</dd<dd>冬季</dd><dd>春裝</dd></dl>
2.寫出兩種以上聲明長(zhǎng)字符串的方法
var str = "abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdabcd"
如何優(yōu)雅的顯示
//方式1
var str = "abcdeabcdeabcdeancdeabc\
deabcdeabcdeancdeabcdeabcd\
eabcdeancdeabcdeabcdabcd"
//方式2
var str = "abcdeabcdeabcdeanc"
+"deabcdeabcdeabcdeancdeab"
+ "cdeabcdeabcdeancdeabcdeabcdabcd"
3.補(bǔ)全如下代碼,讓輸出結(jié)果為字符串: hello\饑人谷
var str = "hello\\\\饑人谷"
console.log(str)
4.以下代碼輸出什么撬即?為什么宰缤?
var str = 'jirengu\nruoyu'
console.log(str.length) // 13 \n為一個(gè)字符
5.寫一個(gè)函數(shù)颂翼,判斷一個(gè)字符串是回文字符串,如abcdcba
是慨灭,abcdabcd
不是
function strTest(str){
var myStr = str.split("").reverse().join("");
if( myStr === str ){
console.log(str + "是一個(gè)回文字符串");
}
else{
console.log(str + "不是一個(gè)回文字符串");
}
}
var str1 = "abcdcba";
var str2 = "abcdabcd";
strTest(str1);
strTest(str2);
6.寫一個(gè)函數(shù)朦乏,統(tǒng)計(jì)字符串中出現(xiàn)頻率最多的字符
function mostLetter(str){
var dist = {};
for(var i = 0; i < str.length; i++){
if( dist[str[i]] ){
dist[str[i]]++;
}
else{
dist[str[i]] = 1;
}
var count = 0;
var mostValue;
for(var key in dist){
if( dist[key] > count ){
mostValue = key;
count = dist[key];
}
}
}
console.log(mostValue,count);
}
var str1 = "abcabc a";
var str2 = "abcd a b c d a b"
mostLetter(str1); // a 3
mostLetter(str2); // 6 /*空格出現(xiàn)了6次*/
7.寫一個(gè)camelize函數(shù),把my-short-string形式的字符串轉(zhuǎn)化成myShortString形式
function cameLize(str){
var arr = str.split("-");
for(var i=1;i < arr.length; i++){
arr[i] = arr[i].substring(0,1).toUpperCase() + arr[i].substr(1);
}
var strNew = arr.join("");
console.log(strNew) ;
}
var str = "my-short-sting";
cameLize(str);
8.寫一個(gè)ucFirst函數(shù)氧骤,返回第一個(gè)字母為大寫的字符
function ucFirst(str){
if(typeof str === "string" && str.length > 0){
return str.substring(0,1).toUpperCase() + str.substr(1);
}else{
return str + "不是一個(gè)字符串"
}
}
ucFirst(hunger)呻疹; // Hunger
unFirst(312); // 312不是一個(gè)字符串
9.寫一個(gè)函數(shù)truncate(str, maxlength), 如果str的長(zhǎng)度大于maxlength,會(huì)把str截?cái)嗟絤axlength長(zhǎng)筹陵,并加上...诲宇,如
truncate("hello, this is hunger valley,", 10) == "hello, thi...";
truncate("hello world", 20) == "hello world"
function truncate(str,maxlength){
if(str.length > maxlength){
return str.substr(0,maxlength) + "..."
}else{
return str
}
}
truncate("hello world", 20);
truncate("hello, this is hunger valley,", 10)
10.什么是json數(shù)據(jù)格式?json格式數(shù)據(jù)如何保存對(duì)象惶翻?window.json是什么姑蓝?
- JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,基于JavaScript的一個(gè)子集吕粗,采用完全獨(dú)立于語(yǔ)言的文本格式纺荧,便于人理解和編寫,也易于機(jī)器解析和生成颅筋。
- 每個(gè)對(duì)象是一個(gè)無(wú)序的“名稱/值對(duì)”集合宙暇,對(duì)象以一個(gè)“{”(左大括號(hào))開始和一個(gè)“}”(右大括號(hào))結(jié)束;每個(gè)“名稱”后跟“:”(冒號(hào))议泵,“名稱/值對(duì)”以“占贫,”(逗號(hào)隔開)。 花括號(hào)保存對(duì)象先口,方括號(hào)保存數(shù)組型奥。
var json1 = {"name": "Byron", "age": "24"}
var json2 = [
{"name": "Byron", "age": "24"},
{"name": "Byron2", "age": "25"}
]
11.如何把JSON 格式的字符串轉(zhuǎn)換為 JS 對(duì)象瞳收?如何把 JS對(duì)象轉(zhuǎn)換為 JSON 格式的字符串?
JSON.stringify(): 用于將JSON對(duì)象轉(zhuǎn)換為JSON格式的字符串
var json1 = {"name": "Byron", "age": "24"}
JSON.stringify(json1); //"{"name":"Byron","age":"24"}"
JSON.parse(): 用于將JSON格式的字符串轉(zhuǎn)換為JSON對(duì)象
var json2 = '{"name":"Byron","age":"24"}';
JSON.parse(json2); // {name: "Byron", age: "24"}