javascript-字符串与对象/JSON与对象

1.使用数组拼接出如下字符串 ,其中styles数组里的个数不定
var prod = {
    name: '女装',
    styles: ['短款', '冬季', '春装']
};
function getTpl(data){
  var arr = [];
    arr.push("<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>")
    }
    return arr.join("")
};
var result = getTplStr(prod);  //result为下面的字符串
<dl class="product">
  <dt>女装</dt>
  <dd>短款</dd>
  <dd>冬季</dd>
  <dd>春装</dd>
</dl>
2.写出两种以上声明多行字符串的方法

例如:这段字符串很长,如何多行优雅的显示

var str = 'abcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancdeabcdeabcdeabcdeancde'
//方法一:使用反斜杠‘\’
  var str1='abcdeabcdeabcdeancdeabc\
    deabcdeabcdeancdeabcdeabcd\
    eabcdeancdeabcdeabcdeabcdeancde';
//方法二:运算符‘+’和单行字符串
  var str2='abcdeabcdeabcdeancdeabc +
    deabcdeabcdeancdeabcdeabcd +
    eabcdeancdeabcdeabcdeabcdeancde';
//方法三:利用多行注释
 var str3=(function() {/*
abcdeabcdeabcdeancdeabcde
    abcdeabcdeancdeabcdeabcdea
    bcdeancdeabcdeabcdeabcdeancde
     */}).toString().split("\n").slice(1,-1).join("")

结果:


题2.PNG
3.补全如下代码,让输出结果为字符串: hello\\饥人谷
var str = 'hello\\\\饥人谷';
console.log(str)
4.以下代码输出什么?为什么?
console.log(str.length)

输出为13,因为\n是转义字符,代表换行,只有一个字符长度

5.写一个函数,判断一个字符串是回文字符串,如 abcdcba是回文字符串, abcdcbb不是
function palindrome(str) {
        var new_str = str.split("").reverse().join("")
        if ( str === new_str ) {
            result=" 是 ";
        } else {
            result=" 不是 ";
        }
        return result;
    }
    var str='abcdcbb';
    palindrome(str);
    console.log(str+result+"回文字符串");
6.写一个函数,统计字符串里出现频率最多的字符
data="rewqewqwqq";
var maxCount=0;
var maxKey;
function most(str){
    var list={};
    for(var i=0;i<str.length;i++){
        if(list[str[i]]){
            list[str[i]]++;
        }else{
            list[str[i]]=1;
        }
    }
    for(var i in list){
        if(maxCount<list[i]){
            maxCount=list[i];
            maxKey=i;
        }
    }
    return maxKey;
}
most(data);
console.log(maxKey);//显示:q
7.写一个camelize函数,把my-short-string形式的字符串转化成myShortString形式的字符串,如
function camelize(obj) {
    var demo = obj.split('-').join('');
    return demo;    
}
camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
8.写一个 ucFirst函数,返回第一个字母为大写的字符 (***)
function ucFirst(str) {
      var new_str
      sub1 = str.substring(0,1)
      sub2 = str.substring(1)
      return new_str = sub1.toUpperCase() + sub2
    }
ucFirst("hunger") == "Hunger"
9.写一个函数truncate(str, maxlength), 如果str的长度大于maxlength,会把str截断到maxlength长,并加上...,如
function trucate(){
      var new_str = str.substr(0, maxlength)
      return (new_str + "...")
}
truncate("hello, this is hunger valley,", 10) == "hello, thi...";
truncate("hello world", 20) == "hello world"
10.什么是 JSON格式数据?JSON格式数据如何表示对象?window.JSON 是什么?

答:
1.什么是 JSON格式数据?

  • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速度)。

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

  • JSON对象中实际就是一组一组的键值对的结构,
    键和值使用:连接,多个键值对之间使用逗号“,”分开,注意如果是最后一组键值对,则千万不要在加逗号“,”.
    例如:
    {"属性名1":属性值1,"属性名2":属性值2,"属性名3":属性值3,"属性名4":属性值4}

  • JSON运行属性值的类型:
    1.字符串
    2.数字
    3.布尔
    4.对象
    5.数组
    6.null

  • 数组:
    [属性1,属性2,属性3,属性4]

3.window.JSON 是什么?

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

答:

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

  • JSON.stringify()
    返回与指定值相对应的一个JSON字符串

推荐阅读更多精彩内容