JS字符串與JSON

常見的字符串方法:

  • 長度計算及連接
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";
    //第一個是開始位置,第二個是長度
    var sub1 = str.substr(1,3); //從下標1開始截取3個字符
    //第一個開始位置,第二個是結束位置,長度為第二減第一,實際上就是去除了尾端的字符
    var sub2 = str.substring(1,3);
    //同上,從第一個位置開始,第二個是結束位置,去除結束位置的字符,截取長度為3-1=2;
    var sub3 = str.slice(1,3);

  • 字符串查找

復習部分

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、寫出兩種以上聲明多行字符串的方法

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

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


答:


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

答:輸出字符長度為,且長度為13,換行符為一個字符;

5、寫一個函數(shù),判斷一個字符串是回文字符串,如 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、寫一個函數(shù),統(tǒng)計字符串里出現(xiàn)出現(xiàn)頻率最多的字符

  var str = "hello world welcome to china nice to meet you";
  var dict = {};//聲明并定義一個名為dict的空對象
  for(var i=0;i<str.length;i++){
      if(dict[str[i]]){  //當i=0時,dict[str[0]]=dict[h]是不存在的,因此為假,
        ++dict[str[i]]  // 不執(zhí)行
    }else{
          dict[str[i]] = 1  //dict[h] = 1;相當于給對象增加了一個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、寫一個camelize函數(shù),把my-short-string形式的字符串轉化成myShortString形式的字符串,如

function camelize(str){
      var arr = str.split("-");
      var newArr = [];
      newArr[0] = arr[0];
      for(var i = 1;i < arr.length;i++){
        //相當于從第二個單詞開始,視其為為一個數(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、寫一個 ucFirst函數(shù),返回第一個字母為大寫的字符 (***)

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

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

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ù)如何表示對象?window.JSON 是什么?

JSON(JavaScript Object Notation,對象表示法),JSON是在JavaScript的一個嚴格的子集,利用了JavaScript中的一些模式來表示結構化數(shù)據(jù);

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

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

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

  • JSON對象不用聲明對象(JSON沒有變量的概念);

  • JSON對象沒有末尾的分號;

  • JSON對象的屬性必須任何時候都要加雙引號;

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

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

11、如何把JSON 格式的字符串轉換為 JS 對象?如何把 JS對象轉換為 JSON 格式的字符串?

JSON對象有兩個方法:stringify()和parse()用于互相轉換

  • stingify()方法用于將javaScript對象序列化為JSON字符串;
  • parse()方法用于將JSON字符串解析為原生的JavaScript值;
    例子如下:
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1、使用數(shù)組拼接出如下字符串 直接拼接法 數(shù)組拼接法 2、寫出兩種以上聲明多行字符串的方法 “+”連接 轉義符\ ...
    高進哥哥閱讀 396評論 0 0
  • 字符串方法,數(shù)組的方法,字符串與數(shù)組相互轉換,回文,JSON 1.使用數(shù)組拼接出如下字符串 2.寫出兩種以上聲明多...
    好奇而已閱讀 389評論 0 0
  • 1. 使用數(shù)組拼接出如下字符串 2. 寫出兩種以上聲明多行字符串的方法 第一種:用"+" 拼接 第二種:利用注釋,...
    蕭雪圣閱讀 441評論 0 0
  • 一、使用數(shù)組拼接出如下字符串 二、寫出兩種以上聲明多行字符串的方法 三、補全如下代碼,讓輸出結果為字符串: hel...
    崔敏嫣閱讀 306評論 0 0
  • 一、生活事件 先生晚上加班,等到十點左右才回家。到家后,他在客廳拿著手機和朋友說事情。許久,我叫他進來。進來后,他...
    若水dai閱讀 195評論 2 0

友情鏈接更多精彩內容