進(jìn)階5

對(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ī)定:

  1. 數(shù)據(jù)在名稱/值對(duì)中
  2. 數(shù)據(jù)由逗號(hào)分隔
  3. 花括號(hào)保存對(duì)象
  4. 方括號(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});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 對(duì)于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么? 對(duì)于HTTP協(xié)議而言,html...
    饑人谷_哈嚕嚕閱讀 523評(píng)論 0 0
  • 對(duì)于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么? 1.對(duì)于HTTP協(xié)議而言,html、...
    azure_1122閱讀 347評(píng)論 0 0
  • 0、對(duì)于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么? 對(duì)于HTTP協(xié)議而言,html、...
    我七閱讀 347評(píng)論 0 0
  • 1.對(duì)于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么? 都是字符串。瀏覽器根據(jù)相應(yīng)請(qǐng)求頭...
    取個(gè)名字都不行閱讀 441評(píng)論 0 0
  • 0.對(duì)于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么? 符合各自語法規(guī)則的字符串 1.使...
    upup_dayday閱讀 192評(píng)論 0 0

友情鏈接更多精彩內(nèi)容