1. 使用數組拼接出如下字符串
如下:
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 i = 0; i < data.styles.length; i++) {
arr.push("\t<dd>"+data.styles[i]+"</dd>\n");
}
arr.push("</dl>");
return arr.join();
}
var result = getTplStr(prod);
console.log(result) //result為下面的字符串
結果:
<dl class="product">
<dt>女裝</dt>
<dd>短款</dd>
<dd>冬季</dd>
<dd>春裝</dd>
</dl>
2. 寫出兩種以上聲明多行字符串的方法
1.在每一行的尾部使用反斜杠。
var longString = "Long \
long \
long \
string";
longString
"Long long long string"
2.連接運算符(+)可以連接多個單行字符串,用來模擬多行字符串。
var longString = 'Long '
+ 'long '
+ 'long '
+ 'string';
longString
"Long long long string"
3. 補全如下代碼,讓輸出結果為字符串: hello\\饑人谷
var str = "hello\\\\饑人谷"
console.log(str)
結果:
hello\\饑人谷
4. 以下代碼輸出什么?為什么
var str = 'jirengu\nruoyu'
console.log(str.length)
結果:
13
換行符\n長度為1占一個空格,jirenguruoyu長度為12,一共為13。
5. 寫一個函數,判斷一個字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
回文:如果將一個字符串翻轉過來,能和原字符串完全相等,那么就可以稱之為“回文”。
function isPalindrome(str){
return str === str.split("").reverse().join("");
}
console.log(isPalindrome('abcdcba')) //true
console.log(isPalindrome('abcdcbb')) //false
split() 方法用于把一個字符串分割成字符串數組。
join(" ") 方法用于把數組中的所有元素放入一個字符串,并指定" "作為分隔符。
reverse() 方法用于顛倒數組中元素的順序。
6. 寫一個函數,統計字符串里出現出現頻率最多的字符
function count(str) {
var obj = {};
for (var i = 0; i < str.length; i++) {
var index = str[i];
if(obj[index]) { //判斷obj中是否有當前str的值
obj[index]++; //有的話讓數組中已有的當前值的index值++
}else {
obj[index] = 1; //沒有的話就將當前值添加到index中去
}
}
console.log(obj);
var num = 0,number=" ";
for(var key in obj) {
if(obj[key] > num) {
num = obj[key];
number = key;
}
}
console.log("出現最多的值是"+ number+"出現次數為"+ num);
}
count('vbifeseinbewewrteee');
Object {v: 1, b: 2, i: 2, f: 1, e: 7}
出現最多的值是e出現次數為7
7. 寫一個camelize函數,把my-short-string形式的字符串轉化成myShortString形式的字符串,如
如下:
function camelize(str){
var newArr = str.split("-");
var newStr = newArr[0];
for (var i = 1; i < newArr.length; i++) {
newStr = newStr + newArr[i].charAt(0).toUpperCase()
+ newArr[i].slice(1,newArr[i].length);
}
console.log(newStr);
}
camelize("background-color") // 'backgroundColor'
camelize("list-style-image") // 'listStyleImage'
slice() 方法可從已有的數組中返回選定的元素。
第一個參數,規定從何處開始選取。第二個參數(可選),規定從何處結束選取,不寫則選擇至末尾。
該方法并不會修改數組,而是返回一個子數組。如果想刪除數組中的一段元素,應該使用方法splice()。
8. 寫一個 ucFirst函數,返回第一個字母為大寫的字符 (***)
如下:
function ucFirst(str){
var newStr = str.charAt(0).toUpperCase() + str.slice(1,str.length);
console.log(newStr);
}
ucFirst("hunger") // "Hunger"
9. 寫一個函數truncate(str, maxlength), 如果str的長度大于maxlength,會把str截斷到maxlength長,并加上...,如
如下:
function truncate(str,maxlength) {
if (str.length > maxlength) {
var newstr = str.substr(0,maxlength) + "...";
console.log(newstr)
}else {
console.log(str)
}
}
truncate("hello, this is hunger valley,", 10) // "hello, thi..."
truncate("hello world", 20) // "hello world"
substr() 方法可在字符串中抽取從 start 下標開始的指定數目的字符。
第一個參數,要抽取的子串的起始下標。第二個參數,抽取子串中的字符數。
10. 什么是 json?什么是 json 語言?JSON 語言如何表示對象?window.JSON 是什么?
- JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成(網絡傳輸速度)。
- JSON 語言是 JavaScript 對象表示語言的子集。
1.數據在名稱/值對中
2.數據由逗號分隔
3.花括號保存對象:對象是一個無序的“名稱/值對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”后跟一個“:”(冒號);“名稱/值對”之間使用“,”(逗號)分隔。
var json1 = {"name": "Byron", "age": "24"}
4.方括號保存數組
JSON 數據的書寫格式是:名稱/值對,名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在后面(同樣在雙引號中),中間用冒號隔開: - window.JSON是瀏覽器內置對象,其中JSON.parse()表示把字符串解析為JSON對象,而JSON.stringify()表示將JSON對象解析為字符串。
11. 如何把JSON 格式的字符串轉換為 JS 對象?如何把 JS對象轉換為 JSON 格式的字符串?
使用JSON.parse()可以把字符串解析為JSON對象,而JSON.stringify()可以將JSON對象解析為字符串。
eval()也可以把字符串解析為JSON對象,雖然evel()解釋代碼字符串的能力非常強大,但也十分危險。因此在使用evel時必須極為謹慎,特別是在用它執行用戶輸入數據的情況下。否則,可能會有惡意用戶輸入威脅你站點或應用程序安全的代碼(即所謂的代碼注入)