2021-01-04

javascript 一 03 数据类型的转换

javascript 一 03 数据类型的转换

javascript 一 03 数据类型的转换

强制转换

Number() String() Boolean()

Number()

使用 Number 函数,可以将任意类型的值转化成数值。

Number(324); // 324Number("324"); // 324Number("324abc"); // NaNNumber(""); // 0--Number(true); // 1Number(false); // 0--Number(undefined); // NaNNumber(null); // 0

Number 方法的参数是对象时,将返回 NaN,除非是包含单个数值的数组。

Number({ a: 1 }); // NaNNumber([1, 2, 3]); // NaNNumber([5]); // 5

简析过程

var obj = { x: 1 };Number(obj); // NaN// 等同于if (typeof obj.valueOf() === "object") { Number(obj.toString());} else { Number(obj.valueOf());}

首先调用 obj.valueOf 方法, 结果返回对象本身;于是,继续调用 obj.toString 方法,这时返回字符串[object Object],对这个字符串使用 Number 函数,得到 NaN。 默认情况下,对象的 valueOf 方法返回对象本身,所以一般总是会调用 toString 方法,而 toString 方法返回对象的类型字符串(比如[object Object])

Number({}); // NaN

String()

String 函数可以将任意类型的值转化成字符串

String(123); // "123"String("abc"); // "abc"String(true); // "true"String(undefined); // "undefined"String(null); // "null"// 对象String({ a: 1 }); // "[object Object]"String([1, 2, 3]); // "1,2,3"

简析过程

String({ a: 1 });// "[object Object]"// 等同于String({ a: 1 }.toString());// "[object Object]"
  • 01 先调用对象自身的 toString 方法。如果返回原始类型的值,则对该值使用 String 函数,不再进行以下步骤。
  • 02 如果 toString 方法返回的是对象,再调用原对象的 valueOf 方法。如果 valueOf 方法返回原始类型的值,则对该值使用 String 函数,不再进行以下步骤。
  • 03 如果 valueOf 方法返回的是对象,就报错。

Boolean()

Boolean()函数可以将任意类型的值转为布尔值

Boolean(undefined); // falseBoolean(null); // falseBoolean(0); // falseBoolean(NaN); // falseBoolean(""); // false--Boolean(true); // trueBoolean(false); // false--Boolean({}); // trueBoolean([]); // trueBoolean(new Boolean(false)); // true

自动转换

自动转换为布尔值

if (!undefined && !null && !0 && !NaN && !"") { console.log("true");} // true// 写法一expression ? true : false;// 写法二!!expression;

自动转换为字符串

"5" + 1; // '51'"5" + true; // "5true""5" + false; // "5false""5" + {}; // "5[object Object]""5" + []; // "5""5" + function () {}; // "5function (){}""5" + undefined; // "5undefined""5" + null; // "5null"

自动转换为数值

"5" - "2"; // 3"5" * "2"; // 10true - 1; // 0false - 1; // -1"1" - 1; // 0"5" * []; // 0false / "5"; // 0"abc" - 1; // NaNnull + 1; // 1undefined + 1; // NaN

方法转换

字符串与数组的转化

split() 方法功能:将字符串按某个字符切割成若干个字符串,并以数组形式返回

var str = "数组1,数组2,数组3,数组4,数组5";var arry = str.split(",");console.log(arry);//["数组1", "数组2", "数组3", "数组4", "数组5"]

join() 方法功能:将数组元素用某个字符连接成字符串

var arry = ["数组1", "数组2", "数组3", "数组4", "数组5"];var str = arry.join("-");console.log(str); //数组1,数组2,数组3,数组4,数组5

数组与对象的转化

var arry = ["数组1", "数组2", "数组3", "数组4", "数组5"];console.log(Object.assign({}, arry));//["数组1", "数组2", "数组3", "数组4", "数组5"]

复杂的数组可以用遍历的方法

var formArr = [ { name: "数组1", value: "11111", }, { name: "数组2", value: "22222", }, { name: "数组3", value: "33333", }, { name: "数组4", value: "44444", },];var obj = {};formArr.map(function (e, item) { obj[e.name] = e.value;});console.log(obj);

对象转数组

var obj = { one: "11111", two: "22222", three: "33333", four: "44444",};var arr = [];for (let i in obj) { let o = {}; // console.log(i,obj[i]) o[i] = obj[i]; arr.push(o);}console.log(arr);

JSON 对象和 js 对象的相互转换

// json 对象 { "name":"张三", "age":"18", "address":"张丑丑呀" } // js 对象var formData={ name:'张三', age:18, address:'张丑丑呀' } ;

JSON.stringify()
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。

var formData = { name: "张三", age: 18, address: "张丑丑呀",};console.log(JSON.stringify(formData, ["name", "address", "age"]));// {"name":"张三","address":"张丑丑呀","age":18}console.log(JSON.stringify(formData, null, 4));//  {//  "name": "张三",//  "age": 18,//  "address": "张丑丑呀"//  }

JSON.parse()
JSON.parse() 方法用于将一个 JSON 字符串转换为对象。

var str = '{"name":"张三","age":"18","address":"张丑丑呀"}';console.log(JSON.parse(str));

json 互转及取值 [搬运]

json类型的字符串转换为json对象及取值

var jsonString = '{"bar":"property","baz":3}';var jsObject = JSON.parse(jsonString); //转换为json对象console.log(jsObject.bar); //取json中的值

json对象转为json类型的字符串

var jsonString = '{"bar":"property","baz":3}';var jsObject = JSON.parse(jsonString); //转换为json对象alert(jsObject.bar); //取json中的值var st = JSON.stringify(jsObject); //转换为json类型的字符串  

json数组类型字符串取值

var jsonStr = '[{"id":"01","open":false,"pId":"0","name":"A部门"},{"id":"01","open":false,"pId":"0","name":"A部门"},{"id":"011","open":false,"pId":"01","name":"A部门"}]';var jsonObj = JSON.parse(jsonStr);//转换为json对象for(var i=0;i<jsonObj.length;i++){  alert(jsonObj[i].id); //取json中的值}console.log(jsonObj)var jsonStr1 = JSON.stringify(jsonObj)console.log(jsonStr1+"jsonStr1")

01数据类型的转换
02js 数组,字符串,json互相转换
03json字符串互转及取值









原文转载:http://www.shaoqun.com/a/504858.html

跨境电商:https://www.ikjzd.com/

亚马逊全球开店:https://www.ikjzd.com/w/1299

贸发局:https://www.ikjzd.com/w/1621


javascript一03数据类型的转换javascript一03数据类型的转换强制转换Number()String()Boolean()Number()使用Number函数,可以将任意类型的值转化成数值。Number(324);//324Number("324");//324Number("324abc");//NaNNumber(""
法瑞儿:法瑞儿
五洲会海购:五洲会海购
卢沟桥在哪_卢沟桥在哪里 :卢沟桥在哪_卢沟桥在哪里
凤凰古镇的特产有什么呢:凤凰古镇的特产有什么呢
2020 Wish年度卖家云峰会,人、货、运的全面升级!:2020 Wish年度卖家云峰会,人、货、运的全面升级!

No comments:

Post a Comment