字符串與JSON

1、使用數(shù)組拼接出如下字符串

var prod = {
    name: '女裝',
    styles: ['短款', '冬季', '春裝']
};
function getTpl(data){
//todo...
};
var result = getTplStr(prod);  //result為下面的字符串
<dl class="product">
    <dt>女裝</dt>
    <dd>短款</dd>
    <dd>冬季</dd>
    <dd>春裝</dd>
</dl>

代碼如下:

var prod = {
    name: '女裝',
    styles: ['短款', '冬季', '春裝']
};
function getTpl(data){
    arr=[];
    arr.push('<dl class="product">');
    arr.push('<dt>'+data.name+'</dt>');
    for(var i=0;i<data.styles.length;i++){
        arr.push('<dd>'+data.styles[i]+'</dd>')
    }
    arr.push('</dl>');
    console.log(arr.join(""));
}
 getTpl(prod);

2规婆、寫出兩種以上聲明多行字符串的方法

例如:

var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'

這段字符串很長惶凝,如何多行優(yōu)雅的顯示

代碼如下:

  1. 使用轉(zhuǎn)義字符\n
 var str1='abcdeabcde\nabcdeancdeabcdeabcdea\nbcdeancdeabcdeabcde\nabcdeancdeabcde\nabcdeabcdeancde'
  1. 使用轉(zhuǎn)移字符\ 空格
 var str1='abcdeabcde\
 \nabcdeancdeabcdeabcdea\
 \nbcdeancdeabcdeabcde\
 \nabcdeancdeabcde\
  \nabcdeabcdeancde'

3笋额、補(bǔ)全如下代碼,讓輸出結(jié)果為字符串: hello\饑人谷

var str = "hello\\\\饑人谷"http://補(bǔ)全代碼
console.log(str)

4岸梨、以下代碼輸出什么?為什么

var str = 'jirengu\nruoyu'
console.log(str.length)  \\13 因?yàn)閈n是轉(zhuǎn)義符喜颁,只占一個(gè)長度

5、寫一個(gè)函數(shù)曹阔,判斷一個(gè)字符串是回文字符串半开,如 abcdcba是回文字符串, abcdcbb不是

var str="abcdcba";
function isReverse(str){
    return str.split('').reverse().join('')    
}
 var result = isReverse(str);
 if(result===str){
     console.log(str+"是回文字符串")
 }else{
     console.log(str+"不是回文字符串")
 }

6、寫一個(gè)函數(shù)次兆,統(tǒng)計(jì)字符串里出現(xiàn)出現(xiàn)頻率最多的字符

var str="hello,everythone,this is my facebook";
var dist={};
for(var i=0;i<str.length;i++){
    if(dist[str[i]]){
        ++ dist[str[i]]
    }else{
        dist[str[i]]=1
    }
   
}
 //console.log(dist)
 var num=0;
 var max
 for(key in dist){
     if(dist[key]>num){
         num = dist[key]
         max = key
     }
 }
 console.log(num,max)

7、寫一個(gè)camelize函數(shù)锹锰,把my-short-string形式的字符串轉(zhuǎn)化成myShortString形式的字符串

function cameLize(str){
    var arr = str.split('-');
    if (arr.length === 1) return str;
    for (var i=1;i<arr.length;i++){
        arr[i] = arr[i][0].toUpperCase().concat(arr[i].substring(1));
    }
    return arr.join('')
}
console.log(cameLize("my-short-string"));

8芥炭、寫一個(gè) ucFirst函數(shù),返回第一個(gè)字母為大寫的字符 (***)

function ucFirst(str){
    return str[0].toUpperCase().concat(str.substr(1));
}

9恃慧、寫一個(gè)函數(shù)truncate(str, maxlength), 如果str的長度大于maxlength园蝠,會(huì)把str截?cái)嗟絤axlength長,并加上...痢士,如

function truncate(str,maxlength){
        var str2;
        if(maxlength>=str.length) {
            str2= str
        }else{
                str2 =  str.slice(0,maxlength)+'...';
            }
            return str2;
    }
var s1=truncate("hello, this is hunger valley,", 10) 
var s2=truncate("hello world", 2)
console.log(s1)
console.log(s2)

10彪薛、什么是 JSON格式數(shù)據(jù)?JSON格式數(shù)據(jù)如何表示對(duì)象怠蹂?window.JSON 是什么善延?

  • json(javascript object notation)的縮寫是一種用于數(shù)據(jù)交換的文本格式,目的是取代繁瑣的xml城侧。具有書寫簡單易遣,一目了然,符號(hào)
    javascript原生語法嫌佑,可以由解釋引擎直接處理豆茫,不用另外添加解析代碼侨歉。所以,json迅速被接受揩魂,成為es5標(biāo)準(zhǔn)的一部分幽邓。
  • var json1 = {"name": "Nick", "age": "7"}
  • window.JSON : 是瀏覽器內(nèi)置對(duì)象』鹇觯可用于判斷瀏覽器是否兼容JSON的用法.
if (!window.JSON) {
  window.JSON = {
    parse: function(sJSON) { return eval('(' + sJSON + ')'); },
    stringify: (function () {
      var toString = Object.prototype.toString;
      var isArray = Array.isArray || function (a) { return toString.call(a) === '[object Array]'; };
      var escMap = {'"': '\\"', '\\': '\\\\', '\b': '\\b', '\f': '\\f', '\n': '\\n', '\r': '\\r', '\t': '\\t'};
      var escFunc = function (m) { return escMap[m] || '\\u' + (m.charCodeAt(0) + 0x10000).toString(16).substr(1); };
      var escRE = /[\\"\u0000-\u001F\u2028\u2029]/g;
      return function stringify(value) {
        if (value == null) {
          return 'null';
        } else if (typeof value === 'number') {
          return isFinite(value) ? value.toString() : 'null';
        } else if (typeof value === 'boolean') {
          return value.toString();
        } else if (typeof value === 'object') {
          if (typeof value.toJSON === 'function') {
            return stringify(value.toJSON());
          } else if (isArray(value)) {
            var res = '[';
            for (var i = 0; i < value.length; i++)
              res += (i ? ', ' : '') + stringify(value[i]);
            return res + ']';
          } else if (toString.call(value) === '[object Object]') {
            var tmp = [];
            for (var k in value) {
              if (value.hasOwnProperty(k))
                tmp.push(stringify(k) + ': ' + stringify(value[k]));
            }
            return '{' + tmp.join(', ') + '}';
          }
        }
        return '"' + value.toString().replace(escRE, escFunc) + '"';
      };
    })()
  };
}

11牵舵、如何把JSON 格式的字符串轉(zhuǎn)換為 JS 對(duì)象?如何把 JS對(duì)象轉(zhuǎn)換為 JSON 格式的字符串?

var str = {name:"anny",
                  age:20}
    console.log(JSON.stringify(str))
    console.log(JSON.parse(JSON.stringify(str)))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末忘分,一起剝皮案震驚了整個(gè)濱河市棋枕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妒峦,老刑警劉巖重斑,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肯骇,居然都是意外死亡窥浪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門笛丙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漾脂,“玉大人,你說我怎么就攤上這事胚鸯」歉澹” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵姜钳,是天一觀的道長坦冠。 經(jīng)常有香客問我,道長哥桥,這世上最難降的妖魔是什么辙浑? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮拟糕,結(jié)果婚禮上判呕,老公的妹妹穿的比我還像新娘。我一直安慰自己送滞,他們只是感情好侠草,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著犁嗅,像睡著了一般梦抢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愧哟,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天奥吩,我揣著相機(jī)與錄音哼蛆,去河邊找鬼。 笑死霞赫,一個(gè)胖子當(dāng)著我的面吹牛腮介,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播端衰,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼叠洗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旅东?” 一聲冷哼從身側(cè)響起灭抑,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抵代,沒想到半個(gè)月后腾节,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荤牍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年案腺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片康吵。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡劈榨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晦嵌,到底是詐尸還是另有隱情同辣,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布惭载,位于F島的核電站旱函,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏棕兼。R本人自食惡果不足惜陡舅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一抵乓、第九天 我趴在偏房一處隱蔽的房頂上張望伴挚。 院中可真熱鬧,春花似錦灾炭、人聲如沸茎芋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽田弥。三九已至,卻和暖如春铡原,著一層夾襖步出監(jiān)牢的瞬間偷厦,已是汗流浹背商叹。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留只泼,地道東北人剖笙。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像请唱,于是被迫代替她去往敵國和親弥咪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 0十绑、對(duì)于 HTTP 協(xié)議而言聚至,HTML、CSS本橙、JS扳躬、JSON 的本質(zhì)都是什么? 對(duì)于HTTP協(xié)議而言勋功,html坦报、...
    Taaaaaaaurus閱讀 279評(píng)論 0 1
  • 0、對(duì)于 HTTP 協(xié)議而言狂鞋,HTML片择、CSS、JS骚揍、JSON 的本質(zhì)都是什么字管? HTML就是符合HTML語法的字...
    怎么昵稱閱讀 1,596評(píng)論 0 3
  • 1.使用數(shù)組拼接出如下字符串 };```function getTpl(data){var arr = "";fo...
    湖衣閱讀 314評(píng)論 0 0
  • 使用數(shù)組拼接出如下字符串 var prod = {name: '女裝',styles: ['短款', '冬季', ...
    jamesXiao_閱讀 275評(píng)論 0 0
  • 0、對(duì)于 HTTP 協(xié)議而言信不,HTML嘲叔、CSS、JS抽活、JSON 的本質(zhì)都是什么硫戈? 1.對(duì)于HTTP協(xié)議而言,htm...
    saintkl閱讀 584評(píng)論 0 0