0、對于 HTTP 協議而言,HTML、CSS、JS、JSON 的本質都是什么?
對于http協議而言,html,css,js,json都是一些字符串,只不過是他們符合某些特定的語法,而能被瀏覽器解讀。
1、使用數組拼接出如下字符串 ,其中styles數組里的個數不定
var prod = {
name: '女裝',
styles: ['短款', '冬季', '春裝']
};
function getTplStr(data){
var str='<dl class="product">'
str+='<dt>'+data.name+'</dt>';
for(i=0;i<data.styles.length;i++){
str+='<dd>'+data.styles[i]+'</dd>';
console.log(1);
}
return str+'</dl>';//todo...
};
var result = getTplStr(prod); //result為下面的字符串
<dl class="product"><dt>女裝</dt><dd>短款</dd<dd>冬季</dd><dd>春裝</dd></dl>
Paste_Image.png
2、寫出兩種以上聲明多行字符串的方法
例如:
var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'
這段字符串很長,如何多行優雅的顯示
var str='abcdeabcdeabcdeancde'
+'abcdeabcdeabcdeancde'
+'abcdeabcdeabcdeancde'
+'abcdeabcdeabcdeancde';
var str='abcdeabcdeabcdeancde\
abcdeabcdeabcdeancde\
abcdeabcdeabcdeancde\
abcdeabcdeabcdeancde';
(function () { /*
abcdeabcdeabcde
abcdeabcdeabcde
abcdeabcdeabcde
abcdeabcdeabcde
abcdeabcdeabcde
*/}).toString().split('\n').slice(1,-1).join('\n')
3、補全如下代碼,讓輸出結果為字符串: hello\\饑人谷
var str ='hello\\\\饑人谷' //補全代碼
console.log(str)
4、以下代碼輸出什么?為什么
var str = 'jirengu\nruoyu'
console.log(str.length) //13 \n是一個換行符,占一個字符
5、寫一個函數,判斷一個字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
var str = 'abcdedcba';
function isReverse(newStr){
return newStr === newStr.split('').reverse().join('')
}
console.log( isReverse(str)) // true
var str='abcdedcba';
function isReverse(newStr){
for(i=0;i<newStr.length;i++){
if(newStr.charAt(i)==newStr.charAt(newStr.length-1-i)){ }else{
return false;
}
}
return true;
}
console.log( isReverse(str)) //true
var str = 'abcdedcba'
function isReverse(newStr){
var arr1 = [];
var arr2 = newStr.split('');
var i = 0;
for(var n = 0; n < arr2.length; n++){
arr1[i] = arr2[arr2.length-1-n];
i++;
}
return arr1.join('') === arr2.join(''); // arr1 和 arr2是數組,要連成字符串比較。
}
isReverse(str); // true
6、寫一個函數,統計字符串里出現出現頻率最多的字符
var str = 'hello world yhhhhhhh';
function fn(str){
var obj = {};
for(var i in str){
if(obj[str[i]]){
obj[str[i]]++;
}else{
obj[str[i]] = 1;
}
} /*把字符串統計成對象*/
var count = 0;
var maxValue;
for(var key in obj){
if(obj[key] > count){
count = obj[key];
maxValue = key;
}
} /*遍歷對象尋找最大的鍵值和鍵名*/
return 'maxValue: ' + maxValue + '\n' + 'count: ' + count;
}
fn(str);
7、寫一個camelize函數,把my-short-string形式的字符串轉化成myShortString形式的字符串,如
function camelize(str){
var arr = str.split('-');
var newArr = [];
for(var i in arr){
newArr[i] = arr[i].replace(arr[i][0],arr[i][0].toUpperCase())
}
newArr.join();
return newArr.join('');
}
camelize("background-color") == 'BackGroundColor'
camelize("list-style-image") == 'ListStyleImage'
8、寫一個 ucFirst函數,返回第一個字母為大寫的字符 (***)
function ucFirst(str){
var newStr = str.replace(str[0], str[0].toUpperCase());
return newStr;
}
ucFirst("hunger") // "Hunger"
ucFirst("hunger") == "Hunger"
9、寫一個函數truncate(str, maxlength), 如果str的長度大于maxlength,會把str截斷到maxlength長,并加上...,如
function trunCate(str,maxlength){
var newStr='';
if(str.length>maxlength){
newTtr=str.substr(0,maxlength)+'...';
}else {
newStr=str;
}
return newstr;
}
trunCate("hello, this is hunger valley,", 10) == "hello, thi...";
trunCate("hello world", 20) == "hello world"
10、什么是 JSON格式數據?JSON格式數據如何表示對象?window.JSON 是什么?
JSON
(JavaScript Object Notation)是一種輕量級的數據交換格式,它基于javaScript的一個子集。JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括:c,c++,c#,Java,JavaScript,Perl,Pythone等)這些特性是JSON成為理解的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成(網絡傳輸速度)。JSON語法
JSON語法是JavaScript對象表示語法的子集
1.數據在名稱/值對中
2.數據由逗號分離
3.花括號保存對象
4.方括號保存數組
JSON數據的書寫格式是:名稱/值對,名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在后面(同樣在雙引號中),中間用冒號隔開。
var json = {"name":"Byron","age":24}
var json2 = [
{"name":"Byron","age":24},
{"name":"Byron2","age":27}
]
- window.JSON
1、window.JSON是瀏覽器的內置對象,用來檢測對JSON的支持情況。
2、JSON對象內置了JSON.parse()、JSON.stringify()。
3、IE8版本以上才內置支持JSON.parse()函數方法
11、如何把JSON 格式的字符串轉換為 JS 對象?如何把 JS對象轉換為 JSON 格式的字符串?
- 原生支持
IE以上瀏覽器都支持了一個對象JSON,JSON對象主要有兩個『靜態』函數
1.parse:把字符串轉化為JSON對象
2.stringify:把JSON對象轉化為字符串(出人意料的不叫toString,因為不是實例方法)
var json = {
"name": "Byron",
"age": 24
};
var json_str = JSON.stringify(json);
console.log(json_str);
console.log(JSON.parse(json_str));
- eval(不推薦使用)
邪惡的eval出現了,以前很多人圖省事用eval把字符串轉為json
var json_str = '{"name": "Byron", "age": 24}';
var json = eval('(' + json_str + ')');
console.log(json);