字符串、json、数组属性和声明及其之间的相互转换

1.声明字符串的两种方法
            var str1 = “string1”;    

            var str2 = new String("string2");

属性:  charAt()  返回指定位置的字符
            charCodeAt() 返回指定位置的字符的Unicode编码
            search() 用于检索字符串中指定的子字符串的位置

            replace() 查找匹配指定的字符串,然后用新字符串代替匹配的字符串

            concat() 将两个或多个字符的文本组合起来,返回一个新的字符串使用加号链接字符串。

            如:newStr = “string1”+”string2”

            indexOf() 返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回 -1 

            lastIndexOf() 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1

            slice() 提取字符串的一部分,并返回一个新字符串。两个参数,第一个为起始位置,第二个为

            终止位置(留头不留尾),如果没有end,就取到末尾

            substring() 返回字符串的一个子串。传入参数是起始位置和结束位置。(留头不留尾),

            如果没有end,就取到末尾

            split() 通过将字符串划分成子串,将一个字符串做成一个字符串数组。

            Length 返回字符串的长度(其包含的字符的个数) 
            toLowerCase() 将整个字符串转成小写字母 

            toUpperCase() 将整个字符串转成大写字母 

2.声明数组的两种方法

            第一种  

           var fruit=[ ];

           第二种

            var  fruit = new Array( );

检测数组:

            if(Array.isArray(value)){}

属性:  join( ) :把数组的所有元素放入一个字符串,通过一个的分隔符进行分隔
            pop( ):删除并返回数组的最后一个元素
            push( ):向数组的末尾添加一个或更多元素,并返回新的长度
            shift():删除并返回数组的第一个元素

            unshift():向数组的开头添加一个或更多元素,并返回新的长度

            reverse():颠倒数组中元素的顺序
            sort( ):对数组的元素进行排序
            concat():连接两个或更多的数组,并返回结果。 
            slice():从某个已有的数组返回选定的元素 

            splice():删除元素,并向数组添加新元素。 

3.引用object的两种方法

            第一种:

            var arr=new Object();或arr={}一般不这样写

            arr.name="aa";

            arr.age=29;

            第二种:(age后面不能加逗号,因为是其最后一个属性)

            var arr={

                   name:"aa",

                   age:29

              };

4.JSON和字符串之间转换
            var arr=JSON.stringify(json);js对象转换成json字符串

            var arr=JSON.parse(str);json字符串转换成json对象

5.数组和字符串之间转换  

           var a,b; 

           a=new Array();

           b=a.join(“_”);第一种数组转字符串

           b=a.toString();第二种数组转字符串

           a=b.split(“;”) 将一个字符串做成一个字符串数组,以分号;隔开。

6.JSON和对象的区别

对比内容 JSON Javascript 对象
键名 必须是加双引号 可允许加单引号,双引号,也可以不加
属性值 只能是数值(10进制) ,字符串(双引号),布尔值和null,也可以是数组,符合JSON的对象,不能是函数,NaN,Infinity,-Infinity和undefined javascript 中的任意值
逗号问题 最后一个值后面不能有逗号 可以有逗号
数值问题 前导不能为0,小数点后会有值

都可以

6.JSON的浅拷贝和深拷贝

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>

    var json = {
        "name": "liming",
        "age": "20",
        "height": "160cm",
        "friends": [
            {"name": "xiaoli", "age": "23"},
            {"name": "xiaohah", "age": [
                    {"name": "xiaoli", "age": "23"},
                    {"name": "xiaohah", "age": "23"},
                ]},
        ],
        "2222": [
            {"name": "xiaoli", "age": "23"},
                    {"name": "22222", "age": [
                    {"name": "xiaoli", "age": "23"},
                    {"name": "11111", "age": "23"},
                ]},
        ]
    };

    function copy(json) {
        var newJSon = {};
        for (x in json) {
            if (json[x] instanceof Object) {
               newJSon[x]=copy(json[x])
            } else {
                newJSon[x] = json[x]
            }
        }
        return newJSon;
    }
        //第一种 newJSon =JSON.parse( JSON.stringify(json) )
  第二种:newJSon=copy(json);
    json.name = "xiaoan"
    json.friends[1].name = "xiaoan"
    newJSon.friends[1].age[1].name = "xiaoan12345678op"
    document.write(JSON.stringify(json)+"<br>")
    document.write(JSON.stringify(newJSon))
    

</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/xinye666666/article/details/80797492
今日推荐