美文网首页
字符串与JSON

字符串与JSON

作者: D一梦三四年 | 来源:发表于2017-09-21 15:05 被阅读0次

    0. 对于 HTTP 协议而言,HTML、CSS、JS、JSON 的本质都是什么?

    • 对于HTTP协议而言,HTML、CSS、JS、JSON都是符合相应语法的字符串。
    • 用户访问页面时,浏览器根据用户请求的路径,向服务器发起请求,服务器根据路径判断返回给浏览器对应的字符串,同时也返回给浏览器Content-Type值。
    • Content-Type=text/html,浏览器就把字符串当HTML进行解析;
      当 HTML 中有<link rel="stylesheet" href="" />,浏览器再向服务器发起请求,服务器返回字符串和 Content-Type=text/css,浏览器就把返回的字符串当 CSS 进行解析;当HTML中有<script src="" />,浏览器向服务器发起请求,服务器返回字符串和 Content-Type=text/javascript,浏览器就把字符串当 JS 进行解析,返回给用户。

    1. 使用数组拼接出如下字符串 ,其中styles数组里的个数不定

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

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

    例如:

    var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'
    

    方法一:

    var str = 'abcdeabcdeabcdeancdea\
    bcdeabcdeabcdeancdeabcdeabcde\
    abcdeancdeabcdeabcdeabcdeancde';
    

    方法二:

    var str = 'abcdeabcdeabcdeancdea' +
    'bcdeabcdeabcdeancdeabcdeabcde' +
    'abcdeancdeabcdeabcdeabcdeancde';
    

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

    var str = 'hello\\\\饥人谷'
    console.log(str)
    

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

    var str = 'jirengu\nruoyu'
    console.log(str.length);     //13,\n 为转义字符,转义字符只占据一个字符,且空格不算在字符长度里
    

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

    function isPal(str) {
        return str.split('').reverse().join('') === str;
    }
    isPal('abcdcba');     //true
    isPal('abcdcbb');     //false
    

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

    var str = 'You raise me up,so I can stand on mooooooooooooooountains';
    var dict = {};
    var count = 0;
    var maxValue;
    for (var i = 0; i < str.length; i++){
        if(dict[str[i]]){
            ++(dict[str[i]])
        } else {
            dict[str[i]] = 1;
        }
    }
    for (key in dict){
        if(dict[key] > count){
            maxValue = key;
            count = dict[key];
        }
    }
    console.log(count, maxValue);
    

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

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

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

    function ucFirst(str){
        return str[0].toUpperCase() + str.substr(1);
    }
    ucFirst("hunger");     //Hunger
    

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

    function truncate(str,num){
        if(str.length > num){
            return str.substr(0, num) + '...';
        } else {
            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 的缩写)是一种用于数据交换的文本格式
    • JSON 可表示简单值(字符串,数值(必须十进制),布尔值和 null,但不支持undefined),对象,数组。但不支持变量、函数或对象实例(如正则表达式和日期)
    • 表示对象:
      • 数据在名值对中,名值对中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号:隔开
      • 数据由逗号分隔
      • 花括号 {} 保存对象
      • 方括号 [] 保存数组
    [25, "hi", true]
    {
        "one": 1,
        "two": "two",
        "three": [ 
            25, 
            "hi", 
            true
        ]
    }
    
    • window.JSON
      • window.JSON 是 ECMAScript 5 定义的一个原生的浏览器内置对象,用来检测对JSON的支持情况
      • JSON 对象内置了 JSON.parse() 和 JSON.stringify() 方法
      • 当HTML页面指定了 DOCTYPE 且浏览器模式为 IE8(包括)以上时,才支持内置的 window.JSON对象和支持 JSON.parse()函数方法。

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

    • JSON对象的 stringify 和 parse 方法,这两个方法分别用于把 JavaScript 对象序列化为 JSON 字符串和把 JSON 字符串解析为原生 JavaScript 值.
    var js = {
        one: "one",
        two: "two",
        three: {
            four: 4
        }
    };
    var jsontext = JSON.stringify(js);     //将JS对象序列化成JSON字符串
    var jscopy = JSON.parse(jsontext);     //将JSON字符串反序列化成JS对象
    console.log(jsontext);     //{"one":"one","two":"two","three":{"four":4}}
    console.log(jscopy); 
    //{ one: "one",
    //   two: "two",
    //   three: {four: 4}
    

    相关文章

      网友评论

          本文标题:字符串与JSON

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