美文网首页
字符串与JSON

字符串与JSON

作者: 饥人谷_Leon | 来源:发表于2017-06-19 15:58 被阅读0次

    1、使用数组拼接出如下字符串

    var prod = {
        name: '女装',
        styles: ['短款', '冬季', '春装']
    };
    function getTpl(data){
      var arr = ['<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(''))
      return (arr.join(''))
    };
    var result = getTpl(prod);  //result为下面的字符串
    
    <dl class="product">
        <dt>女装</dt>
        <dd>短款</dd>
        <dd>冬季</dd>
        <dd>春装</dd>
    </dl>
    

    2、写出两种以上声明多行字符串的方法

    例如:

    var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'
    这段字符串很长,如何多行优雅的显示

    • 方法一:
    var str = 'abcde'
    +'abcde'
    +'abcde'
    +'abcde'
    +'abcde'
    
    • 方法二:
    var str= 'abcde\
    abcde\
    abcde\
    abcde\
    abcde\
    abcde'
    

    3、补全如下代码,让输出结果为字符串: hello\饥人谷

    var str ='hello\\'+'\\饥人谷' //补全代码
    console.log(str)
    var str ='hello\\\\饥人谷' //补全代码
    console.log(str)
    

    4、以下代码输出什么?为什么

    var str = 'jirengu\nruoyu'
    console.log(str.length)//13\n是一个字符表示换行
    

    5、写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是

    var str = 'abcdcba'
    function palindrome(str){
    return str === str.split("").reverse().join();
    }
    console.log(palindrome(str))
    

    6、写一个函数,统计字符串里出现出现频率最多的字符

    var str = 'sldjfld jsjfoisdjfdffffffffffffffffffffffffffffffffffffsfkds lsdjfoisdjfosdhfdlgsjosjf lsjfsufoiwjhfhg dss lsdjfls'
    function frequency(str){
    var obj = {}
    for ( var i = 0 ; i < str.length; i++){
      if (obj[str[i]]){
           ++obj[str[i]]
      }else{
      obj[str[i]] = 1
      }
    }
    var max = 0,
          moststr
    for(var key in obj){
      if ( obj[key] > max ){
        max = obj[key]
        moststr = key
      }
      }
    console.log(moststr+':'+max)
    }
    frequency(str)
    

    7、写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如

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

    8、写一个 ucFirst函数,返回第一个字母为大写的字符 (***)

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

    9、写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到maxlength长,并加上...,如

    function truncate(str,maxlength){
      if ( str.length > maxlength ){
        str = str.substr(0,maxlength) + '...'
    }
    console.log(str)
    return str
    }
    truncate("hello, this is hunger valley,", 10) == "hello, thi...";
    truncate("hello world", 20) == "hello world"
    

    10、什么是 JSON格式数据?JSON格式数据如何表示对象?window.JSON 是什么?

    JSON格式(JavaScript Object Notation的缩写)是一种用于数据交换的文本格式,2001年由Douglas Crockford提出,目的是取代繁琐笨重的XML格式。

    相比XML格式,JSON格式有两个显著的优点:书写简单,一目了然;符合JavaScript原生语法,可以由解释引擎直接处理,不用另外添加解析代码。所以,JSON迅速被接受,已经成为各大网站交换数据的标准格式,并被写入ECMAScript 5,成为标准的一部分。
    JSON对值的类型和格式有严格的规定。

    • 复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
    • 简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能-
    • 使用NaN, Infinity, -Infinity和undefined)。
    • 字符串必须使用双引号表示,不能使用单引号。
    • 对象的键名必须放在双引号里面。
    • 数组或对象最后一个成员的后面,不能加逗号。

    JSON格式数据如何表示对象?

    • 对象用{}表示
    • 键值对之间用“,”分隔
    • 键名跟键之间用‘:’分隔,值可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)
    • 字符串必须使用双引号表示,不能使用单引号。
    • 对象的键名必须放在双引号里面。
    • 对象最后一个成员的后面,不能加逗号

    以下是合格的JSON值。

    ["one", "two", "three"]
    
    { "one": 1, "two": 2, "three": 3 }
    
    {"names": ["张三", "李四"] }
    
    [ { "name": "张三"}, {"name": "李四"} ]
    

    以下是不合格的JSON值。

    { name: "张三", 'age': 32 }  // 属性名必须使用双引号
    
    [32, 64, 128, 0xFFF] // 不能使用十六进制值
    
    { "name": "张三", "age": undefined } // 不能使用undefined
    
    { "name": "张三",
      "birthday": new Date('Fri, 26 Aug 2011 07:13:10 GMT'),
      "getName": function() {
          return this.name;
      }
    } // 不能使用函数和日期对象
    

    需要注意的是,空数组和空对象都是合格的JSON值,null本身也是一个合格的JSON值。
    window.JSON是全局对象,用于判断浏览器是否兼容JSON的用法。

    11、如何把JSON 格式的字符串转换为 JS 对象?如何把 JS对象转换为 JSON 格式的字符串?

    JSON.parse()

    将一个字符串解析为JSON,可选地转换生成的值及其属性,并返回值。
    JSON.stringify()

    返回与指定值相对应的一个JSON字符串,可选地仅包含某些属性或以用户定义的方式替换属性值。

    相关文章

      网友评论

          本文标题:字符串与JSON

          本文链接:https://www.haomeiwen.com/subject/drpbqxtx.html