1. 使用數組拼接出如下字符串
var prod = {
name: '女裝',
styles: ['短款', '冬季', '春裝']
};
function getTpl(data){
var a = [];
var b = prod;
var c = data.styles;
a.push('<dl class="product">');
a.push('<dt>'+b.name+'</dt>');
for (key in c){
a.push('<dd>'+c[key]+'</dd>');
}
a.push('</dl>')
console.log(a.join(""))
};
var result = getTpl(prod); //result為下面的字符串
/*
<dl class="product">
<dt>女裝</dt>
<dd>短款</dd>
<dd>冬季</dd>
<dd>春裝</dd>
</dl>
*/
2. 寫出兩種以上在js代碼中書寫多行字符串的方法
var longString = 'long'+
'long'+
'long';
var longString2 = 'long2\
long2\
long2' //反斜杠后不能有空格
3. 補全如下代碼,讓輸出結果為字符串: hello\饑人谷
var str = 'hello\\\\饑人谷'
console.log(str) //hello\\饑人谷
4. 以下代碼輸出什么?為什么
var str = 'jirengu\nruoyu'
console.log(str.length) //13 \n是轉義字符,算一個,就算`\`后面跟非特殊意義字符,也算一個,此時不轉義
5.寫一個函數,判斷一個字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
function reverseEqualToOrigin(text){
if(text === text.split('').reverse().join('')){
return true
} else{
return false
}
}
console.log(reverseEqualToOrigin('abcdcba')) //true
console.log(reverseEqualToOrigin('ab')) //false
6.寫一個函數,統計字符串里出現出現頻率最多的字符
function mostAvailable(text){
var i;
var obj = {};
var textSplit = text.split('')
for(i = 0; i<text.length; i++){
if(textSplit[i] in obj){
obj[textSplit[i]]+=1;
} else{
obj[textSplit[i]]=1;
}
}
var count = 0;
var max;
for(key in obj){
if(obj[key] > count){
max = key
count = obj[key]
}
}
console.log(max+':'+obj[max])
}
mostAvailable('hqhqhhqhqh abck') //h:6
7. 寫一個camelize函數,把my-short-string形式的字符串轉化成myShortString形式的字符串,如
function camelize(text){
textSplit = text.split('-')
var i ='';
var textJoin = textSplit[0];
for(i = 1;i < textSplit.length;i++){
textPart = textSplit[i]
textJoin += textPart[0].toUpperCase() + textPart.slice(1);
}
return textJoin;
}
console.log(camelize("background-color") == 'backgroundColor') //true
console.log(camelize("list-style-image") == 'listStyleImage') //true
8.寫一個 ucFirst函數,返回第一個字母為大寫的字符 (***)
function ucFirst(text){
return text[0].toUpperCase() + text.slice(1).toLowerCase();
}
console.log(ucFirst("hunger")) //Hunger
9. 寫一個函數truncate(str, maxlength), 如果str的長度大于maxlength,會把str截斷到maxlength長,并加上...,如
function truncate(text,maxlength){
if(text.length <= maxlength){
return text;
} else {
return (text.substr(0,maxlength))+'...'
}
}
console.log(truncate("hello, this is hunger valley,", 10) === "hello, thi...") //true
console.log(truncate("hello world", 20) === "hello world") //true
10.什么是 json?什么是 json 語言?JSON 語言如何表示對象?window.JSON 是什么?
10.1 JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成(網絡傳輸速度)。
10.2
- JSON可以表示一下三種類型的值
- 簡單值:字符串、數值、布爾值、null(只有這四種,不能為NaN、undefined、Infinity等)
- 復雜數據類型
- 對象:表示一組無序的鍵值對。而每個鍵值對中的值可以是簡單值,也可以是復雜數據類型的值。
- 數組:表示一組值的有序列表,可以通過數值索引來訪問其中的值。數組的值也可以是任意類型——簡單值、對象或數組。(復雜類型不能為函數、正則、日期對象等)
- 其他
- 字符串必須使用雙引號表示,不能使用單引號
- 對象的鍵名必須放在雙引號里面
- 數組或對象最后一個成員的后面,不能加逗號
10.3 window.JSON是ES5新增的對象,用來處理JSON格式數據。它有兩個方法:JSON.stringify()和JSON.parse()。
11、如何把JSON 格式的字符串轉換為 JS 對象?如何把 JS對象轉換為 JSON 格式的字符串?
- JSON.parse方法用于將JSON字符串轉化成對象。
JSON.parse('{}'); // {}
JSON.parse('true'); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null'); // null
- JSON.stringify方法用于將一個值轉為JSON字符串。該字符串符合 JSON 格式,并且可以被JSON.parse方法還原。
JSON.stringify('1') // ""1""
JSON.stringify(1) // "1"
JSON.stringify(false) // "false"
JSON.stringify([]) // "[]"
JSON.stringify({}) // "{}"
——————————————————————————
JSON.stringify([1, "false", false]) // '[1,"false",false]'
JSON.stringify({ name: "xiaoming" })// '{"name":"xiaoming"}'