進(jìn)階5

0、對于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么?

  • 本質(zhì)上都是符合HTML、CSS、JS、JSON語法的字符串。

1、使用數(shù)組拼接出如下字符串 ,其中styles數(shù)組里的個數(shù)不定

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

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

例如:

var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'

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

  • 方法一:可以在每一行的尾部使用反斜杠
  • 方法二:連接運算符(+)可以連接多個單行字符串,用來模擬多行字符串。
  • 方法三:利用多行注釋,生成多行字符串
var str= "abcde \
abcde \
abcde ";  //方法一
==============
var str = "abced" 
+ "abced" 
+ "abced"; //方法二
================
var str = (function () { /*
abcde
abcde
abcde
*/}).toString().split('\n').slice(1,-1).join('\n') //方法三

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

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

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

var str = 'jirengu\nruoyu'
console.log(str.length)  // 13  \n會被轉(zhuǎn)譯為一個換行。

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

   var a = "abcdcba",
         b = "abcdcbb"
   function fn(str){
             revstr = str.split('').reverse().join('')
              if(str === revstr){
                   console.log(str + "是一個回文字符串")
     }else{
                   console.log(str + "不是一個回文字符串")
     }
}
fn(a);
fn(b);

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

var a = "jjjjjjiiiirrrreennnnngggguuuu"
function strSta(data){
      var newArray= {},
          count = 0,
          maxvalue;
      for(i=0;i<data.length;i++){
          if(newArray[data[i]]){
            newArray[data[i]]++;
        }else{
            newArray[data[i]]=1;
        }
    }
      for(k in newArray){
          if(newArray[k] > count){
                count = newArray[k];
                maxvalue = k;
        }
    }
       console.log(maxvalue + "出現(xiàn)最多,有" + count +"次")
}
strSta(a)

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

var str1 = "background-color",
      str2 = "list-style-image";
function camelize(str){
    strArr = str.split('');
    for(var i=0; i < strArr.length ; i++){
        if(strArr[i] === '-'){
            strArr.splice(i,1);
            strArr[i] = strArr[i].toUpperCase();
            i--;
        }
    }
    return strArr.join('')
}
console.log(camelize(str1))
console.log(camelize(str2))

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

ucFirst("hunger") == "Hunger"
function ucFirst(str){
    strArr = str.split('');
    strArr[0] = strArr[0].toUpperCase();
    return strArr.join('');
}

9、寫一個函數(shù)truncate(str, maxlength), 如果str的長度大于maxlength,會把str截斷到maxlength長,并加上...,如

truncate("hello, this is hunger valley,", 10) 
truncate("hello world", 20) 
function truncate(str,len){
    if(str.length <= len){
        return str;
    }
    var newstr = str.substr(0,len)+"...";
    console.log(newstr)
    return newstr;
}

10、什么是 JSON格式數(shù)據(jù)?JSON格式數(shù)據(jù)如何表示對象?window.JSON 是什么?

  • JSON 格式(JavaScript Object Notation 的縮寫)是一種用于數(shù)據(jù)交換的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁瑣笨重的 XML 格式。
  • JSON 對值的類型和格式有嚴(yán)格的規(guī)定。
    1.復(fù)合類型的值只能是數(shù)組或?qū)ο?,不能是函?shù)、正則表達(dá)式對象、日期對象。
    2.簡單類型的值只有四種:字符串、數(shù)值(必須以十進(jìn)制表示)、布爾值和null(不能使用NaN, Infinity, -Infinity和undefined)。
    3.字符串必須使用雙引號表示,不能使用單引號。
    4.對象的鍵名必須放在雙引號里面。
    5.數(shù)組或?qū)ο笞詈笠粋€成員的后面,不能加逗號。
  • window.JSON是ECMAScript 5為了檢測對JSON的支持情況定義的一個原生的瀏覽器內(nèi)置對象,其內(nèi)置了JSON.parse()和JSON.stringify()方法;

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

  • JSON.parse方法用于將JSON字符串轉(zhuǎn)化成對象。
  • JSON.stringify方法用于將一個值轉(zhuǎn)為字符串。該字符串符合 JSON 格式,并且可以被JSON.parse方法還原。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 0、對于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么? 對于HTTP協(xié)議而言,html、...
    我七閱讀 288評論 0 0
  • 1. 對于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么? 對于HTTP協(xié)議而言,html...
    饑人谷_哈嚕嚕閱讀 474評論 0 0
  • 0、對于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么? 本質(zhì)都是符合各自語法的字符串 1...
    曉風(fēng)殘月1994閱讀 235評論 0 0
  • 對于 HTTP 協(xié)議而言,HTML、CSS、JS、JSON 的本質(zhì)都是什么? 1.對于HTTP協(xié)議而言,html、...
    azure_1122閱讀 307評論 0 0
  • 活了18年最最最喜歡的一年就是2016了吧 啊呀要是非要總結(jié)一下的話那就是上半年好幸福好開心下半年幸福地回憶上半年...
    阿樹阿舒閱讀 210評論 0 0