JS基础(十) 将字符串转为对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS基础(十) 将字符串转为对象相关的知识,希望对你有一定的参考价值。

参考技术A <script>

        /*

            let phone =

                name: '小米10',

                color: '红色',

                size: '1000*200*500',

                price: '2999'

           

        */

        let str1 = 'name=小米10&color=红色&size=1000*200*500&price=2999'

        // let arr = str1.split('&')

        // console.log(arr);  // (4) ["name=小米10", "color=红色", "size=1000*200*500", "price=2999"]

        // 定义一个反译方法,头大,真离谱

        function rever(str)

            // 定义一个空对象

            let obj =

            str.split('&').forEach(item =>

            let kv = item.split('=')

            obj[kv[0]] = kv[1]

            )

            return obj

       

        let obj1 = rever(str1)

        console.log(obj1);

        let str = 'name=小米10&color=红色&size=1000*200*500&price=2999'

        // 思路:得先将字符串转为数组

        // 数组中的元素应该是什么样的

        // 结果中需清除“&”和“=”字符,那就得调用split()方法来分隔

        // 第一步:先将该型字符串调用split()方法以"&"字符分隔,返回一个数组

        // console.log(str.split('&'))

        // (4) ["name=小米10", "color=红色", "size=1000*200*500", "price=2999"]

        // 第二步:将得到的数组里的每一个元素再次调用split()方法以“=”分隔

        // 这样就将“&”和“=”字符清除了

        // 从而得到了第一位为属性名(下标为0),第二位为属性值的几个数组(下标为1)

        // 那么如何才能将属性名与属性值一一对应?

        /* str.split('&').forEach(item =>

            console.log(item.split('='))

        ) */

        // 返回了四个数组

        // (2) ["name", "小米10"]

        // (2) ["color", "红色"]

        // (2) ["size", "1000*200*500"]

        // (2) ["price", "2999"]

        // 第三步:遍历过程中将数组赋值给新数组对象kv(封装起来)

        // 思考:如何才能将属性名与属性值一一对应?

        // 即如何实现将属性值赋值给属性名(下标为1的元素的值赋值给下标为0的元素)

        // 因为最后得返回一个包含四个属性的对象出去

        // 那就需要创建一个对象去接收(封装)这些值

        // 定义一个空对象

        let obj =  

        str.split('&').forEach(item =>

            // 遍历过程中将数组赋值给新对象kv

            let kv = item.split('=')

            // kv中有两个元素,第一位为属性名,第二位为属性值

            obj[kv[0]] = kv[1]

        )

        console.log(obj);

        // name: "小米10", color: "红色", size: "1000*200*500", price: "2999"

    </script>

Js隐式转换

参考技术A 1 .if 判断,其余类型转为布尔类型
2 .比较操作符 ==

3 .+,-

4 . 点 号操作符
5 .在对数字,字符串进行点操作方法时,默认将数字,字符串转成对象

5 .关系符比较的时候

1 .

1 .null 转为“null”
2 .undefined 转为 “undefined”
3 .Boolean true转为“true”,false转为“false”
4 .number :11 转化为“11”,11e20 科学计数法转为“1.1e+21”
5 .数组,空数组转为字符串“”,如果数组中有null,或者undefined,同样当作空字符串处理,[1,2,3,4]="1,2,3,4"
6 .函数function a()转为字符串为 “function a()”
7 .一般对象:“[object,object]”
8 .NaN "NaN"

1 .只有null,undefined,0,false,NaN,空字符串,这6种情况转为布尔值的结果为false,其余都是true
2 .转换为布尔值得场景

1 .null 0
2 .undefined NaN
3 .Boolean true 1,false 0
4 .字符串:纯数字的字符串,转为对应的数字,空字符串转为0,其余都是NaN
5 .数组,数组首先会被转换为原始类型,然后根据上面的原始类型转换规则进行转换

6 .对象,和数组一样 =NaN
7 .NaN NaN

1 .Data对象会先调用toString
2 .当对象转为其他原始类型时,会先调用对象的valueOf方法,如果valueOf方法返回的是原始类型,直接返回这个原始类型
3 .返回的不是原始类型,或者valueOf方法不存在,继续调用toString()方法。如果toString()返回的是这个原始类型。直接返回这个原始类型,如果不是原始类型,直接报错

1 .将一个值转换为他为真正的布尔值
2 .!![] false ![]==true

1 .字符串和数字类型相比较的时候,字符串会被转换为数字类型

2 .布尔值和其他类型值比较

3 .null ,undefined 和其他类型的比较

4 .js规定null,undefined宽松都与自己相等,但是与其它值都不相等

1 .会把对象按照对象转换规则转换成原始类型,再次比较

1 .如果两个对象指向同一个对象,相等操作符返回true,否则返回 false

1 .字符串连接符的情况

以上是关于JS基础(十) 将字符串转为对象的主要内容,如果未能解决你的问题,请参考以下文章

js基础学习之-js包装对象

Js隐式转换

JavaScript:如何将JSON对象转换成JSON字符串呢

Js对象(四)对象与字符串相互转换 2021-11-24

如何将C#/.NET 将json字符串格式数据转换成对象?

js 把json字符串转为json对象