對(duì)于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么?
對(duì)于HTTP來講,HTML、CSS、JS、JSON本質(zhì)上都只是一系列字符串而已,它們遵循自身的語法規(guī)范,它們用不同的Content-Type來告訴瀏覽器如何去解析它們
當(dāng)Content-Type=text/html時(shí),瀏覽器會(huì)將字符串按照HTML語法來解析
當(dāng)Content-Type=text/css時(shí),瀏覽器會(huì)將字符串按照CSS語法來解析
當(dāng)Content-Type=text/javascript時(shí),瀏覽器會(huì)將字符串按照J(rèn)S語法來解析
使用數(shù)組拼接出如下字符串 ,其中styles數(shù)組里的個(gè)數(shù)不定
var prod = {
name: '女裝',
styles: ['短款', '冬季', '春裝']
};
function getTplStr(data){
var arr = [];
var str;
arr.push('<dl class="product">');
arr.push('<dt>'+data['name']+'<dt>');
for(var i in data['styles']){
arr.push('<dd>'+data['styles'][i]+'<dd>')
}
arr.push('<dl>');
return str = arr.join('');
};
var result = getTplStr(prod); //result為下面的字符串
console.log(result);
<dl class="product"><dt>女裝</dt><dd>短款</dd<dd>冬季</dd><dd>春裝</dd></dl>
寫出兩種以上聲明多行字符串的方法
例如:
var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'
這段字符串很長(zhǎng),如何與優(yōu)雅的展示
var str = 'abcdeabcdeabcdeancde\
abcdeabcdeabcdeancde\
abcdeabcdeabcdeancde\
abcdeabcdeabcdeancde'
var str = 'abcdeabcdeabcdeancde'
+ 'abcdeabcdeabcdeancde'
+ 'abcdeabcdeabcdeancde'
+ 'abcdeabcdeabcdeancde'
補(bǔ)全如下代碼,讓輸出結(jié)果為字符串: hello\饑人谷
var str = "hello\\\\饑人谷"
console.log(str)
以下代碼輸出什么?為什么
var str = 'jirengu\nruoyu'
console.log(str.length) // 13,因?yàn)?\n 是一個(gè)字符,表示換行
寫一個(gè)函數(shù),判斷一個(gè)字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
function reverse(str){
var newStr = str.split("").reverse().join("");
console.log("回文:"+(str === newStr));
}
reverse("abcdcba"); // 回文:true
reverse("abcdcbb"); // 回文:false
寫一個(gè)函數(shù),統(tǒng)計(jì)字符串里出現(xiàn)出現(xiàn)頻率最多的字符
var str1 = "Welcome to jirengu"
function sta(str) {
var dict = {};
for (var i = 0; i < str.length; i++) {
if (dict[str.charAt(i)]) {
dict[str.charAt(i)]++;
} else {
dict[str.charAt(i)] = 1;
}
}
var word = " ";
var value = 0;
for (var key in dict) {
if (dict[key] > value) {
word = key;
value = dict[key];
}
}
console.log("出現(xiàn)最多的字符:" + word, "出現(xiàn)次數(shù):" + value);
}
sta(str1);
寫一個(gè)camelize函數(shù),把my-short-string形式的字符串轉(zhuǎn)化成myShortString形式的字符串
function camelize(str) {
var arr = str.split('-');
for (var i = 1; i < arr.length; i++) {
arr[i] = arr[i].replace(arr[i][0],arr[i][0].toUpperCase());
}
return arr.join('');
}
camelize("background-color") //'backgroundColor'
camelize("list-style-image") //'listStyleImage'
寫一個(gè) ucFirst函數(shù),返回第一個(gè)字母為大寫的字符
function ucFirst(str) {
str = str.replace(str[0],str[0].toUpperCase());
return str;
}
ucFirst("hunger") // "Hunger"
寫一個(gè)函數(shù)truncate(str, maxlength), 如果str的長(zhǎng)度大于maxlength,會(huì)把str截?cái)嗟絤axlength長(zhǎng),并加上...,
function truncate(str, maxlength) {
if (str.length > maxlength) {
return str.substr(0, maxlength) + '...';
} else {
return str;
}
}
truncate("hello, this is hunger valley,", 10);// "hello, thi..."
truncate("hello world", 20); // "hello world"
什么是 JSON格式數(shù)據(jù)?JSON格式數(shù)據(jù)如何表示對(duì)象?window.JSON 是什么?11、如何把JSON 格式的字符串轉(zhuǎn)換為 JS 對(duì)象?如何把 JS對(duì)象轉(zhuǎn)換為 JSON 格式的字符串?
JSON語法規(guī)定:
- 數(shù)據(jù)在名稱/值對(duì)中
- 數(shù)據(jù)由逗號(hào)分隔
- 花括號(hào)保存對(duì)象
- 方括號(hào)保存數(shù)組
符合JSON語法的數(shù)據(jù)即為JSON格式數(shù)據(jù)
JSON對(duì)象是一個(gè)無序的“名稱/值對(duì)”集合。一個(gè)對(duì)象以“{”(左括號(hào))開始,“}”(右括號(hào))結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào));“名稱/值對(duì)”之間使用“,”(逗號(hào))分隔。
var json1 = {"name": "Byron", "age": "24"}
var json2 = [
{"name": "Byron", "age": "24"},
{"name": "Byron2", "age": "25"}
]
window.JSON 瀏覽器內(nèi)置JSON方法 IE8以上支持
JSON.parse()方法可以將js字符串轉(zhuǎn)換為JSON對(duì)象,JSON.stringify()方法可以將JSON對(duì)象轉(zhuǎn)換為js字符串,舉個(gè)栗子:
JSON.parse('{"name":"jirengu","age":21}');
JSON.stringify({"name":"jirengu","age":21});