字符串与JSON

2017-09-21  本文已影响0人  D一梦三四年

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

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 是什么?

[25, "hi", true]
{
    "one": 1,
    "two": "two",
    "three": [ 
        25, 
        "hi", 
        true
    ]
}

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

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}
上一篇 下一篇

猜你喜欢

热点阅读