1.使用數組拼接如下字符串,其中styles數組中的個數不確定
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.寫出兩種以上聲明長字符串的方法
var str = "abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdabcd"
如何優雅的顯示
//方式1
var str = "abcdeabcdeabcdeancdeabc\
deabcdeabcdeancdeabcdeabcd\
eabcdeancdeabcdeabcdabcd"
//方式2
var str = "abcdeabcdeabcdeanc"
+"deabcdeabcdeabcdeancdeab"
+ "cdeabcdeabcdeancdeabcdeabcdabcd"
3.補全如下代碼,讓輸出結果為字符串: hello\饑人谷
var str = "hello\\\\饑人谷"
console.log(str)
4.以下代碼輸出什么?為什么?
var str = 'jirengu\nruoyu'
console.log(str.length) // 13 \n為一個字符
5.寫一個函數,判斷一個字符串是回文字符串,如abcdcba
是,abcdabcd
不是
function strTest(str){
var myStr = str.split("").reverse().join("");
if( myStr === str ){
console.log(str + "是一個回文字符串");
}
else{
console.log(str + "不是一個回文字符串");
}
}
var str1 = "abcdcba";
var str2 = "abcdabcd";
strTest(str1);
strTest(str2);
6.寫一個函數,統計字符串中出現頻率最多的字符
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 /*空格出現了6次*/
7.寫一個camelize函數,把my-short-string形式的字符串轉化成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.寫一個ucFirst函數,返回第一個字母為大寫的字符
function ucFirst(str){
if(typeof str === "string" && str.length > 0){
return str.substring(0,1).toUpperCase() + str.substr(1);
}else{
return str + "不是一個字符串"
}
}
ucFirst(hunger); // Hunger
unFirst(312); // 312不是一個字符串
9.寫一個函數truncate(str, maxlength), 如果str的長度大于maxlength,會把str截斷到maxlength長,并加上...,如
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數據格式?json格式數據如何保存對象?window.json是什么?
- JSON是一種輕量級的數據交換格式,基于JavaScript的一個子集,采用完全獨立于語言的文本格式,便于人理解和編寫,也易于機器解析和生成。
- 每個對象是一個無序的“名稱/值對”集合,對象以一個“{”(左大括號)開始和一個“}”(右大括號)結束;每個“名稱”后跟“:”(冒號),“名稱/值對”以“,”(逗號隔開)。 花括號保存對象,方括號保存數組。
var json1 = {"name": "Byron", "age": "24"}
var json2 = [
{"name": "Byron", "age": "24"},
{"name": "Byron2", "age": "25"}
]
11.如何把JSON 格式的字符串轉換為 JS 對象?如何把 JS對象轉換為 JSON 格式的字符串?
JSON.stringify(): 用于將JSON對象轉換為JSON格式的字符串
var json1 = {"name": "Byron", "age": "24"}
JSON.stringify(json1); //"{"name":"Byron","age":"24"}"
JSON.parse(): 用于將JSON格式的字符串轉換為JSON對象
var json2 = '{"name":"Byron","age":"24"}';
JSON.parse(json2); // {name: "Byron", age: "24"}