字符串和对象的转换
第一:如何判断数据类型 typeof()
比如 arr="sdhhd"
console.log(typeof(arr)) //string
可以判断为字符串,其他的如数组,布尔等就不一一测试啦。
总结: typeof()主要是判断数据类型的
第二:转化为字符串
(1) string 转换格式string(arr)
比如 arr=1123
console.log(typeof(arr)) //number
var arr1=string(arr) // "1123"
此时 console.log(typeof(arr1)) // "1123" 数据类型为string
(2) toFixed 转化格式arr.toFixed(n) 转换成字符串 以小数点后有n位数字形式展示实数
(3) toString 转化格式 arr.toString() 此方法可以直接将数组转换为字符串
(4)toLocaleString 转换格式 arr.toLocaleString();此方法把数组转换为本地字符串
(5)toPrecision 转化格式arr.toPrecision(n) 此方法是在对象的值超出指定位数时将其转换为指数计数法
总结:此方法一般用于转换为字符串的时候,在做项目的时候遇见转换为字符串可以使用,转换字符串主要用的还是前三种,后面两个用的时候了解下
第三:转换为Boolean值 转换格式Boolean(arr) 这个只有false和true两个值
比如 var arr=["r",4,5]
alert(Boolean(arr) ) true;
var arr=false;
alert(Boolean(arr) ) false;
var arr=true;
alert(Boolean(arr) ) true;
var arr=null;
alert(Boolean(arr) ) false;
var arr=0; false
var arr=1;true 非0即为真
........等等
总结:此方法主要是判断boolean的,在判断bool值的时候可以用
第三:字符串分割成数组
(1) split 方法 arr.split(m,n) 两个参数 m为开始分割的起点 n为分割的最大长度
比如 var arr="sdhf"
console.log(arr1.split(" ")) //["s","d","h","f"]
console.log(arr1.split(" ")) //["sdhf"]
(2) 正则表达式方法
var arr="sdhf"
var arr1=arr.replace(/(.)(?=[^$])/g,"$1,").split(",");
console.log(arr1)//["s","d","h","f"]
总结:推荐使用方法一,方法一功能上面还有很多,具体的分割自己可以有选择性的应用
第四:转换成数值
(1) number 转换方法number(arr) 此方法只能转换数字 如果对象的值不能转换为数字将会返回NAN
比如 number("789")//789
number("gg789")//NAN
number("789 33")//NAN
(2) parseInt 转换方法 parseInt (arr) 此方法转化为浮点数,首位不为数值或者空格为返回NAN
比如 parseInt("789")//789
parseInt("gg789")//NAN
parseInt("789 33")//789
parseInt("78.33")//78
(3)parseFloat 转化方法parseFloat(arr)此方法只转换为整数,首位不为数值或者空格为返回NAN
比如 parseFloat("789")//789
parseFloat("gg789")//NAN
parseFloat("789 33")//789
parseFloat("78.33")//78.33
总结:转换数值推荐使用方法2或者3,整数用方法2,浮点数用方法3
第五:字符串和对象的互相转换 JSON.stringify(arr);对象转换为字符串 JSON.parse(str) 或者eval字符串转换为对象
比如var arr={
testArray:"[1,2,3,4]",
name:"js",
data:"mayany"
}
var arr1= JSON.stringify(arr);
console.log(arr1); //此时为字符串
var arr2 = JSON.parse(arr1);
console.log(arr2); //此时为对象
或者
var arr1= JSON.stringify(arr);
console.log(arr1); //此时为字符串
var arr2=eval('(' + arr1+ ')');
console.log(arr2); //此时为对象
json对象与字符串的相互转换,数组和字符串的转换
1.json对象转换为字符串
JSON.stringify(value [, replacer] [, space])
var student = new Object();
student.id = "001";
student.name = "程陈";
student.age = "18";
var str = JSON.stringify(student);
//{"id":"001","name":"程陈","age":"18"}
var str1 = JSON.stringify(student,["id"],"ok");
//{
//ok"id": "001"
//}
var data = [
{ name: "小红", sex: 1, age: 10 },
{ name: "小明", sex: 0, age: 10 },
{ name: "小华", sex: 1, age: 30 }
];
var str_json = JSON.stringify(data, function (k, v) {
if (k === "sex") {
return ["女", "男"][v];
}
return v;
});
//[{"name":"小红","sex":"男","age":10},{"name":"小明","sex":"女","age":10},{"name":"小华","sex":"男","age":30}]
replacer : 使用来过滤的,可以出来数组和函数
情况一:replacer为数组时,通过后面的实验可以知道,它是和第一个参数value有关系的。一般来说,系列化后的结果是通过键值对来进行表示的。 所以,如果此时第二个参数的值在第一个存在,那么就以第二个参数的值做key,第一个参数的值为value进行表示,如果不存在,就忽略。
情况二:replacer为方法时,那很简单,就是说把系列化后的每一个对象(记住是每一个)传进方法里面进行处理。
space:就是用什么来做分隔符的。
1)如果省略的话,那么显示出来的值就没有分隔符,直接输出来 。
2)如果是一个数字的话,那么它就定义缩进几个字符,当然如果大于10 ,则默认为10,因为最大值为10。
3)如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。
4)如果仅仅是字符串,就在每行输出值的时候把这些字符串附加上去。当然,最大长度也是10个字符。
2.字符串转换为json 对象
var str2 = '{"abc":"123","bcd":"234"}';//每个属性都要用双引号括起来;不然会有异常
var obj = JSON.parse(str2);
//Object {abc: "123", bcd: "234"}
3.数组转换为字符串
var arr = ["aaa","bbb","ccc","ddd"];
var str4 = arr.join(",");
//aaa,bbb,ccc,ddd
4.字符串转换为数组
var str5 = "123,234,345,456";
var arr1 = str5.split(",");
console.log(arr1);
//["123", "234", "345", "456"]