美文网首页
字符串与JSON

字符串与JSON

作者: _李祺 | 来源:发表于2017-04-19 22:07 被阅读0次

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

    如下:

    var prod = {
        name: '女装',
        styles: ['短款', '冬季', '春装']
    };
    function getTplStr(data) {
        var arr = [];
        arr.push("<dl class=\"product\">\n");
        arr.push("\t<dt>"+data.name+"</dt>\n");
        for (var i = 0; i < data.styles.length; i++) {
            arr.push("\t<dd>"+data.styles[i]+"</dd>\n");
        }
        arr.push("</dl>");
        return arr.join();
    }
    var result = getTplStr(prod);
    console.log(result)  //result为下面的字符串
    结果:
    <dl class="product">
        <dt>女装</dt>
        <dd>短款</dd>
        <dd>冬季</dd>
        <dd>春装</dd>
    </dl>
    

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

    1.在每一行的尾部使用反斜杠。

    var longString = "Long \
    long \
    long \
    string";
    
    longString
    "Long long long string"
    

    2.连接运算符(+)可以连接多个单行字符串,用来模拟多行字符串。

    var longString = 'Long '
      + 'long '
      + 'long '
      + 'string';
    longString
    "Long long long string"
    

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

    var str = "hello\\\\饥人谷"
    console.log(str)
    结果:
    hello\\饥人谷
    

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

    var str = 'jirengu\nruoyu'
    console.log(str.length)
    结果:
    13
    

    换行符\n长度为1占一个空格,jirenguruoyu长度为12,一共为13。

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

    回文:如果将一个字符串翻转过来,能和原字符串完全相等,那么就可以称之为“回文”。

    function isPalindrome(str){
        return str === str.split("").reverse().join("");
    }
    console.log(isPalindrome('abcdcba')) //true
    console.log(isPalindrome('abcdcbb')) //false
    

    split() 方法用于把一个字符串分割成字符串数组。
    join(" ") 方法用于把数组中的所有元素放入一个字符串,并指定" "作为分隔符。
    reverse() 方法用于颠倒数组中元素的顺序。

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

    function count(str) {
        var obj = {};
        for (var i = 0; i < str.length; i++) {
            var index = str[i]; 
            if(obj[index]) { //判断obj中是否有当前str的值 
                obj[index]++;  //有的话让数组中已有的当前值的index值++
            }else {
                obj[index] = 1; //没有的话就将当前值添加到index中去
            }
        }
        console.log(obj); 
        var num = 0,number=" ";
        for(var key in obj) {
            if(obj[key] > num) {
                num = obj[key];
                number = key;
            }
        }
        console.log("出现最多的值是"+ number+"出现次数为"+ num); 
    }
    count('vbifeseinbewewrteee');
    
    Object {v: 1, b: 2, i: 2, f: 1, e: 7}
    出现最多的值是e出现次数为7
    

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

    如下:

    function camelize(str){
        var newArr = str.split("-");
        var newStr = newArr[0];
        for (var i = 1; i < newArr.length; i++) {
            newStr = newStr + newArr[i].charAt(0).toUpperCase()
             + newArr[i].slice(1,newArr[i].length);
        }
        console.log(newStr);
    }
    camelize("background-color")  // 'backgroundColor'
    camelize("list-style-image")  // 'listStyleImage'
    

    slice() 方法可从已有的数组中返回选定的元素。
    第一个参数,规定从何处开始选取。第二个参数(可选),规定从何处结束选取,不写则选择至末尾。
    该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法splice()。

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

    如下:

    function ucFirst(str){
        var newStr = str.charAt(0).toUpperCase() + str.slice(1,str.length);
        console.log(newStr);
    }
    ucFirst("hunger") // "Hunger"
    

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

    如下:

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

    substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
    第一个参数,要抽取的子串的起始下标。第二个参数,抽取子串中的字符数。

    10. 什么是 json?什么是 json 语言?JSON 语言如何表示对象?window.JSON 是什么?

    • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速度)。
    • JSON 语言是 JavaScript 对象表示语言的子集。
      1.数据在名称/值对中
      2.数据由逗号分隔
      3.花括号保存对象:对象是一个无序的“名称/值对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“名称/值对”之间使用“,”(逗号)分隔。
      var json1 = {"name": "Byron", "age": "24"}
      4.方括号保存数组
      JSON 数据的书写格式是:名称/值对,名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:
    • window.JSON是浏览器内置对象,其中JSON.parse()表示把字符串解析为JSON对象,而JSON.stringify()表示将JSON对象解析为字符串。

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

    使用JSON.parse()可以把字符串解析为JSON对象,而JSON.stringify()可以将JSON对象解析为字符串。
    eval()也可以把字符串解析为JSON对象,虽然evel()解释代码字符串的能力非常强大,但也十分危险。因此在使用evel时必须极为谨慎,特别是在用它执行用户输入数据的情况下。否则,可能会有恶意用户输入威胁你站点或应用程序安全的代码(即所谓的代码注入)

    相关文章

      网友评论

          本文标题:字符串与JSON

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