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基础(十) 将字符串转为对象的主要内容,如果未能解决你的问题,请参考以下文章