0、對于 HTTP 協議而言,HTML、CSS、JS、JSON 的本質都是什么?
- 對于HTTP協議而言,html、css、js、json是符合相應語法的字符串
- 用戶訪問頁面時,瀏覽器根據用戶請求的路徑,向服務器發起請求,服務器根據路判斷徑返回給瀏覽器對應的字符串,同時也返回給瀏覽器Content-Type值。
- Content-Type=text/html,瀏覽器就把字符串當HTML進行解析;當HTML中有
<link rel="stylesheet" href="" />
,瀏覽器再向服務器發起請求,服務器返回字符串和Content-Type=text/css
,瀏覽器就把返回的字符串當CSS進行解析;當HTML中有<script src="" />
,瀏覽器向服務器發起請求,服務器返回字符串和Content-Type=text/javascript
,瀏覽器就把字符串當JS進行解析,返回給用戶;
1、使用數組拼接出如下字符串 ,其中styles數組里的個數不定
var prod = {
name: '女裝',
styles: ['短款', '冬季', '春裝']
};
function getTpl(data){
var s = '<dl class = "product" >'
for(var i in data){
console.log(i);
if (i === 'name') {
s += '<dt>'+data[i]+'</dt>';
} else if(i == 'styles'){
for(var k in data[i]){
s += '<dd>'+data[i][k]+'</dd>'
}
}
}
return s + '</dl>'
};
var result = getTplStr(prod); //result為下面的字符串<dl class="product"><dt>女裝</dt><dd>短款</dd<dd>冬季</dd><dd>春裝</dd></dl>
console.log(result);
2、寫出兩種以上聲明多行字符串的方法
例如:var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'
這段字符串很長,如何多行優雅的顯示
- 方法一:
var str = 'abcdeabcdeab\
cdeancdea\
bcdeabcdea\
bcdeancdeab\
cdeabcdeabc\
deancdeabcd\
eabcdeabcdeancde'```
- 方法二:
var str = 'abcdeabcdeabcdean'
+'cdeabcdeabcdeabcdean'
+'cdeabcdeabcdeabcdean'
+'cdeabcdeabcdeabcdeancde'
####3、補全如下代碼,讓輸出結果為字符串: hello\\饑人谷
var str = 'hello\饑人谷'
console.log(str)
####4、以下代碼輸出什么?為什么
var str = 'jirengu\nruoyu'
console.log(str.length)
- 輸出13,因為\n是轉義字符換行
####5、寫一個函數,判斷一個字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
-
function isReverse (str) {
return str===str.split('').reverse().join('')
}
####6、寫一個函數,統計字符串里出現出現頻率最多的字符
function mostChars(str){
var s2={};
var cont=0;
var char;
for (var i in str) {
if (s2[str[i]]) {
s2[str[i]]++;
} else{
s2[str[i]] = 1;
}
}
for(var k in s2){
if (s2[k]>cont) {
char = k;
cont = s2[k];
}
}
return char+":"+cont;
}
####7、寫一個camelize函數,把my-short-string形式的字符串轉化成myShortString形式的字符串,如
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
-
function camelize(str) {
var arr = str.split('-');
for(var i = 1; i < arr.length; i++) {
arr[i] = arr[i][0].toUpperCase()+arr[i].substr(1);
}
return arr.join('');
}
####8、寫一個 ucFirst函數,返回第一個字母為大寫的字符 (***)
ucFirst("hunger") == "Hunger"
-
function ucFirst(str){
return str[0].toUpperCase() + str.substr(1)
}
####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.substring(0,maxlength)+"***";
} else{
return str
}
}
10、什么是 JSON格式數據?JSON格式數據如何表示對象?window.JSON 是什么?
- JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式。它基于 ECMAScript 規范的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。
- JSON 鍵值對是用來保存 JS 對象的一種方式,和 JS 對象的寫法也大同小異,鍵/值對組合中的鍵名寫在前面并用雙引號 "" 包裹,使用冒號 : 分隔,然后緊接著值:
{"firstName": "John"}這很容易理解,等價于這條 JavaScript 語句:
{firstName = "John"} - window.JSON是瀏覽器內置對象其中JSON.parse()表示把字符串解析為JSON對象,而JSON.stringify()表示將JSON對象解析為字符串
11、如何把JSON 格式的字符串轉換為 JS 對象?如何把 JS對象轉換為 JSON 格式的字符串?
- 要實現從對象轉換為 JSON 字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'}); //結果是 '{"a": "Hello", "b": "World"}' - 要實現從 JSON 轉換為對象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //結果是 {a: 'Hello', b: 'World'}