JS字符串與JSON

常見的字符串方法:

  • 長(zhǎng)度計(jì)算及連接
var str = "hello";
console.log(str.length); //打印5
console.log(str[0]);    //打印str[0]=1
console.log(str[str.length-1]);//打印str[4]=o

var str1 = str;
var str2 = "world";
var str3 = str1 + str2; //字符串拼接
console.log(str3);  //打印 helloworld
  • 字符串截取
    var str = "hello world";
    //第一個(gè)是開始位置,第二個(gè)是長(zhǎng)度
    var sub1 = str.substr(1,3); //從下標(biāo)1開始截取3個(gè)字符
    //第一個(gè)開始位置,第二個(gè)是結(jié)束位置,長(zhǎng)度為第二減第一,實(shí)際上就是去除了尾端的字符
    var sub2 = str.substring(1,3);
    //同上,從第一個(gè)位置開始,第二個(gè)是結(jié)束位置,去除結(jié)束位置的字符,截取長(zhǎng)度為3-1=2;
    var sub3 = str.slice(1,3);

  • 字符串查找

復(fù)習(xí)部分

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

var product = {
    name: '女裝',
    styles: ['短款', '冬季', '春裝']
}


function getTpl(product) {
var arr = [];
arr.push('<dl>');
arr.push('  <dt>' + product.name + '</dt>');
for(var i = 0; i < product.styles.length; i++) {
arr.push('<dd>' + product.styles[i] + '</dd>');
}
arr.push('</dl>');
return arr.join('');
}

console.log(getTpl(product));

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

  • 方式一:
    使用反斜杠加換行符,達(dá)到換行且有一定空間的輸出效果
  • 方式二
    使用數(shù)組的內(nèi)置join方法來(lái)實(shí)現(xiàn)換行輸出

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


答:


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

答:輸出字符長(zhǎng)度為,且長(zhǎng)度為13,換行符為一個(gè)字符;

5捷凄、寫一個(gè)函數(shù)秕狰,判斷一個(gè)字符串是回文字符串趣苏,如 abcdcba是回文字符串, abcdcbb不是

  • 回文字符串就是顛倒順序后與原字符串相同的字符串

function isPalindrome(str){ var new_str = str.split('').reverse().join(''); return str === new_str; } var str = "123123"http://不是回文字符串 if(isPalindrome(str) === true){ alert("是回文字符串"); }else{ alert("不是回文字符串"); }

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

  var str = "hello world welcome to china nice to meet you";
  var dict = {};//聲明并定義一個(gè)名為dict的空對(duì)象
  for(var i=0;i<str.length;i++){
      if(dict[str[i]]){  //當(dāng)i=0時(shí),dict[str[0]]=dict[h]是不存在的,因此為假,
        ++dict[str[i]]  // 不執(zhí)行
    }else{
          dict[str[i]] = 1  //dict[h] = 1;相當(dāng)于給對(duì)象增加了一個(gè)h屬性,且賦值為1,之后依次類推
    }
}
  console.log(dict);

var maxValue = dict['h'];
var max_index = 0;
for(var key in dict){
if(maxValue < dict[key]){  
    maxValue = dict[key];
    max_index = key;
    }
}
var str = "出現(xiàn)頻率最高的字符為:"+ max_index;
alert(str);

`

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

function camelize(str){
      var arr = str.split("-");
      var newArr = [];
      newArr[0] = arr[0];
      for(var i = 1;i < arr.length;i++){
        //相當(dāng)于從第二個(gè)單詞開始,視其為為一個(gè)數(shù)組(而非數(shù)組元素),arr[i][0]為該單詞的首字母,將其改為大寫
        newArr.push(arr[i][0].toUpperCase() + arr[i].slice(1));
         }
      return newArr.join("");
  }

      $res = camelize("background-color");
      console.log($res);  

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

function ucFirst(str){
    var initials = str[0].toUpperCase();
    var lastPart = str.slice(1);
    return initials + lastPart;   
}
 console.log(ucFirst("hunger"));

9、寫一個(gè)函數(shù)truncate(str, maxlength), 如果str的長(zhǎng)度大于maxlength沟于,會(huì)把str截?cái)嗟絤axlength長(zhǎng)咳胃,并加上...,如

function truncate(str,maxlength){
    if(str.length > maxlength){
        var res = str.substr(0,maxlength) + "...";
        return res; 
    }else{
        return str;
    }

}
var str1 = "hello, this is hunger valley,";
console.log(truncate(str1,10));
var str2 = "hello world";
console.log(truncate(str2,20));

10旷太、什么是 JSON格式數(shù)據(jù)展懈?JSON格式數(shù)據(jù)如何表示對(duì)象?window.JSON 是什么供璧?

JSON(JavaScript Object Notation,對(duì)象表示法),JSON是在JavaScript的一個(gè)嚴(yán)格的子集,利用了JavaScript中的一些模式來(lái)表示結(jié)構(gòu)化數(shù)據(jù);

  • 以上引自JS高程,個(gè)人目前的理解就是JSON是一種特殊的數(shù)據(jù)結(jié)構(gòu),含有特殊的嚴(yán)格語(yǔ)法,是js語(yǔ)法的一個(gè)子類,即數(shù)據(jù)的表示滿足了JSON的語(yǔ)法,肯定也是滿足JS的語(yǔ)法的;

  • JSON格式數(shù)據(jù)表示對(duì)象的形式為:
    首先設(shè)置一個(gè)JS字面量:
    var person = {
    name:"Nicholas",
    age: 29;
    }

JSON表示上述對(duì)象的方式如下:
{ "name":"Nicholas"; "age" : 29; }

  • JSON對(duì)象不用聲明對(duì)象(JSON沒(méi)有變量的概念);

  • JSON對(duì)象沒(méi)有末尾的分號(hào);

  • JSON對(duì)象的屬性必須任何時(shí)候都要加雙引號(hào);

  • window.JSON是用于判斷瀏覽器是否兼容JSON的用法存崖,例如IE8版本以上才內(nèi)置支持JSON.parse方法,對(duì)此常見這樣的寫法:

    if(window.JOSN){
       jsonObj2 = JSON.parse(json);
    }else{
    }
    

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

JSON對(duì)象有兩個(gè)方法:stringify()和parse()用于互相轉(zhuǎn)換

  • stingify()方法用于將javaScript對(duì)象序列化為JSON字符串;
  • parse()方法用于將JSON字符串解析為原生的JavaScript值;
    例子如下:
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市演顾,隨后出現(xiàn)的幾起案子供搀,更是在濱河造成了極大的恐慌,老刑警劉巖钠至,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件葛虐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡棉钧,警方通過(guò)查閱死者的電腦和手機(jī)屿脐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宪卿,“玉大人的诵,你說(shuō)我怎么就攤上這事∮蛹兀” “怎么了西疤?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)休溶。 經(jīng)常有香客問(wèn)我代赁,道長(zhǎng)撒遣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任管跺,我火速辦了婚禮,結(jié)果婚禮上禾进,老公的妹妹穿的比我還像新娘豁跑。我一直安慰自己,他們只是感情好泻云,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布艇拍。 她就那樣靜靜地躺著,像睡著了一般宠纯。 火紅的嫁衣襯著肌膚如雪卸夕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天婆瓜,我揣著相機(jī)與錄音快集,去河邊找鬼。 笑死廉白,一個(gè)胖子當(dāng)著我的面吹牛个初,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播猴蹂,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼院溺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了磅轻?” 一聲冷哼從身側(cè)響起珍逸,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤模狭,失蹤者是張志新(化名)和其女友劉穎昌屉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绵疲,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勤婚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年摹量,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馒胆。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缨称,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祝迂,到底是詐尸還是另有隱情睦尽,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布型雳,位于F島的核電站当凡,受9級(jí)特大地震影響山害,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沿量,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一浪慌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朴则,春花似錦权纤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至撤蚊,卻和暖如春古掏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背侦啸。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工槽唾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匹中。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓夏漱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親顶捷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挂绰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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

  • 1、使用數(shù)組拼接出如下字符串 直接拼接法 數(shù)組拼接法 2服赎、寫出兩種以上聲明多行字符串的方法 “+”連接 轉(zhuǎn)義符\ ...
    高進(jìn)哥哥閱讀 357評(píng)論 0 0
  • 字符串方法,數(shù)組的方法,字符串與數(shù)組相互轉(zhuǎn)換,回文,JSON 1.使用數(shù)組拼接出如下字符串 2.寫出兩種以上聲明多...
    好奇而已閱讀 354評(píng)論 0 0
  • 1. 使用數(shù)組拼接出如下字符串 2. 寫出兩種以上聲明多行字符串的方法 第一種:用"+" 拼接 第二種:利用注釋葵蒂,...
    蕭雪圣閱讀 370評(píng)論 0 0
  • 一、使用數(shù)組拼接出如下字符串 二重虑、寫出兩種以上聲明多行字符串的方法 三践付、補(bǔ)全如下代碼,讓輸出結(jié)果為字符串: hel...
    崔敏嫣閱讀 267評(píng)論 0 0
  • 一、生活事件 先生晚上加班缺厉,等到十點(diǎn)左右才回家永高。到家后,他在客廳拿著手機(jī)和朋友說(shuō)事情提针。許久命爬,我叫他進(jìn)來(lái)。進(jìn)來(lái)后辐脖,他...
    若水dai閱讀 137評(píng)論 2 0