字符串与JSON

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 getTpl(data){
    var s = '<dl class = "product" >'
        for(var i in data){
            console.log(i);
            if (i === 'name') {
                s  += '<dt>'+data[i]+'</dt>';
            } else if(i == 'styles'){
                for(var k in data[i]){
                    s += '<dd>'+data[i][k]+'</dd>'
                }
            }
        }
        return s + '</dl>'
};
var result = getTplStr(prod);  //result为下面的字符串<dl class="product"><dt>女装</dt><dd>短款</dd<dd>冬季</dd><dd>春装</dd></dl>
console.log(result);

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

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

  • 方法一:
var str = 'abcdeabcdeab\
cdeancdea\
bcdeabcdea\
bcdeancdeab\
cdeabcdeabc\
deancdeabcd\
eabcdeabcdeancde'```
-  方法二:

var str = 'abcdeabcdeabcdean'
+'cdeabcdeabcdeabcdean'
+'cdeabcdeabcdeabcdean'
+'cdeabcdeabcdeabcdeancde'

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

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

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

var str = 'jirengu\nruoyu'
console.log(str.length)

-  输出13,因为\n是转义字符换行

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

function isReverse (str) {
return str===str.split('').reverse().join('')
}


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

function mostChars(str){
var s2={};
var cont=0;
var char;

for (var i in str) {
    if (s2[str[i]]) {
        s2[str[i]]++;
    } else{
        s2[str[i]] = 1;
    }
}

for(var k in s2){
    if (s2[k]>cont) {
        char = k;
        cont = s2[k];
    } 
}

return char+":"+cont;

}

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

camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'

-  

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('');
}


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

ucFirst("hunger") == "Hunger"

- 

function ucFirst(str){
return str[0].toUpperCase() + str.substr(1)
}


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

truncate("hello, this is hunger valley,", 10) == "hello, thi...";
truncate("hello world", 20) == "hello world"

-  ```
function truncate(str, maxlength) {
        if (str.length>maxlength) {
            return str.substring(0,maxlength)+"***";
        } else{
            return str
        }   
    }

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

  • JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
  • JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:
    {"firstName": "John"}这很容易理解,等价于这条 JavaScript 语句:
    {firstName = "John"}
  • window.JSON是浏览器内置对象其中JSON.parse()表示把字符串解析为JSON对象,而JSON.stringify()表示将JSON对象解析为字符串

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

  • 要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:
    var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'
  • 要实现从 JSON 转换为对象,使用 JSON.parse() 方法:
    var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 0、对于 HTTP 协议而言,HTML、CSS、JS、JSON 的本质都是什么? 1.对于HTTP协议而言,htm...
    saintkl阅读 587评论 0 0
  • 0、对于 HTTP 协议而言,HTML、CSS、JS、JSON 的本质都是什么? HTML就是符合HTML语法的字...
    怎么昵称阅读 1,634评论 0 3
  • 1、使用数组拼接出如下字符串 2、写出两种以上声明多行字符串的方法 例如: var str = 'abcdeabc...
    饥人谷_Leon阅读 297评论 0 0
  • 0.对于 HTTP 协议而言,HTML、CSS、JS、JSON 的本质都是什么? 对于HTTP协议而言,html、...
    hellowade阅读 250评论 0 0
  • 什么是JSON?什么是JSON语言?JSON 语言如何表示对象?window.JSON 是什么?如何把JSON 格...
    LeeoZz阅读 523评论 0 0