1. 使用數(shù)組拼接出如下字符串
var prod = {
name: '女裝',
styles: ['短款', '冬季', '春裝']
};
function get(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 demo = get(prod);
console.log(demo);
//
<dl clall="product">
<dt>女裝</dt>
<dd>短款</dd>
<dd>冬季</dd>
<dd>春裝</dd>
</dl>
2. 寫出兩種以上聲明多行字符串的方法.
1. 第一種當然是使用,轉(zhuǎn)義字符.
var str = "你好\nWorld!"
console.log(str);
2. 第二種也是使用,轉(zhuǎn)義字符,只不過,這次我們把字符串,多空出一段距離.
var str = "你好\n\
World\n\
!";
console.log(str);
3. 第三種,我們要使用,數(shù)組的join內(nèi)置方法進行轉(zhuǎn)換.
var str = ["line1","line2","line3"];
var obj = str.join("\n");
console.log(obj);
4. "+"連接
var str = 'luoqian'
+'is'
+'very'
+'good'
+'!'
3. 補全如下代碼,讓輸出結(jié)果為字符串: hello\高治東
var str = 'hello\\\\高治東';
console.log(str)
4.以下代碼輸出什么?為什么
var str = 'jirengu\nruoyu';
console.log(str.length);
//輸出13。使用了\n換行,占一個字符,空格不計算在長度內(nèi)。
var str = "\abc";
console.info(str.length); // 3
結(jié)果是3,說明'\a'是一個字符。
如果你想在字符串里面表示'\',那么你就得轉(zhuǎn)義它,給它也加一個反斜杠'\\'。
var str = "\\abc";
console.info(str.length); // 4
5. 寫一個函數(shù),判斷一個字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
function isPalindrome(str) {
newstr = str.split('').reverse().join('');
if (str === newstr) {
console.log('這是回文字符')
} else {
console.log('這不是回文字符')
}
}
var a = 'abccba';
isPalindrome(a);
6. 寫一個函數(shù),統(tǒng)計字符串里出現(xiàn)出現(xiàn)頻率最多的字符
var str = "hello world nihao nihao nihao haha ";
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(var key in dict) {
if(dict[key] > count) {
count = key;
maxValue = dict[key];
}
}
console.log("出現(xiàn)最多的字符是" + count,"出現(xiàn)了" + maxValue + "次");
7、寫一個camelize函數(shù),把my-short-string形式的字符串轉(zhuǎn)化成myShortString形式的字符串
如: camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
function camelize(str) {
var arr = str.split("-");
var tempStr = arr[0];
for (var i = 1; i < arr.length; i++) {
tempStr += arr[i].charAt(0).toUpperCase() + arr[i].slice(1, arr[i].length);
}
return tempStr;
}
console.log(camelize("background-color")); //== 'backgroundColor'
console.log(camelize("list-style-image")); // == 'listStyleImage'
8. 寫一個 ucFirst函數(shù),返回第一個字母為大寫的字符
//ucFirst("hunger") == "Hunger"
var str1 = "hunger"
function ucFirst(str) {
var a = str.charAt(0).toUpperCase()
//console.log(a)
var b = str.substring(1)
//console.log(a + b)
return a + b
}
console.log(ucFirst(str1))
9. 寫一個函數(shù)truncate(str, maxlength), 如果str的長度大于maxlength,會把str截斷到maxlength長,并加上...
//substr() 方法可在字符串中抽取從 start 下標開始的指定數(shù)目的字符。
var str1 = "hello, this is hunger valley";
function truncate(str,maxlenght) {
if(str.length > maxlenght){
var sub1 = str.substr(0,maxlenght) + "...";
console.log(1,sub1);
}
return sub1
}
console.log(truncate(str1,10));
10. 什么是 json?什么是 json 對象?什么是 json 對象字面量?什么是 JSON內(nèi)置對象?
JSON是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。
JSON對象是一個值,要么是簡單類型的值,要么是復合類型的值,但是只能是一個值。JSON對值的要求:
復合類型的值只能是數(shù)組或?qū)ο螅荒苁呛瘮?shù)、正則表達式對象、日期對象。
簡單類型的值只有四種:字符串、數(shù)值(必須以十進制表示)、布爾值和null(不能使用NaN, Infinity, -Infinity和undefined)。
字符串必須使用雙引號表示,不能使用單引號。
對象的鍵名必須放在雙引號里面。
數(shù)組或?qū)ο笞詈笠粋€成員的后面,不能加逗號。
JSON對象字面量 字面量是一種表示值的記法,JSON對象字面量表示以JSON形式表現(xiàn)一種值。
JSON內(nèi)置對象 parse、stringify方法
11. 如何把JSON 格式的字符串轉(zhuǎn)換為對象?如何把對象轉(zhuǎn)換為 JSON 格式的字符串?
JSON.parse()方法 把JSON 格式的字符串轉(zhuǎn)換為對象
JSON.stringify()方法 對象轉(zhuǎn)換為 JSON 格式的字符串