类型转换和方法

类型转换和方法

JSON相关

JSON转String

一般用于存储信息,例如localstorage

var jsonObject = { "name": "John", "age": 30, "city": "New York" };
var jsonString = JSON.stringify(jsonObject);

String转JSON

var jsonString = '{"name": "John", "age": 30, "city": "New York"}';
var jsonObject = JSON.parse(jsonString);

JSON.stringify方法和JSON.parse方法也可以转换数组

Number相关

浮点转整数

var floatNumber = 3.6;
// 四舍五入方法
var roundedIntNumber = Math.round(floatNumber);	// 3
// 保留整数方法
var intNumber = Math.floor(floatNumber);	// 4
var floatNumber = 3.1;
// 向上取整
intNumber = Math.ceil(floatNumber);	// 4

生成随机数

console.log(Math.random());
// 生成一个0~1(不包含1)的随机数,浮点类型

如果要生成范围内的随机数

var max=100;
console.log(Math.random()*max);
// 生成一个0~100(不含100)的随机数,浮点类型
console.log(Math.floor(Math.random()*max));
// 生成一个0~100(不含100)的随机数,整数类型
console.log(Math.random()*max+100);
// 生成一个100~200(不含200)的随机数,浮点类型

保留固定长度小数

var a=3.14159;
console.log(a.toFixed(2));	// 输出3.14

Number转String

var a=3.14;
console.log("PI="+(a.toString()+15));	// 输出PI=3.1415,四舍五入

一些常用的数

  • Math.E:自然对数的底数e
  • Math.PI:圆周率

常用方法

  • Math.abs(x):绝对值
  • Math.max(array):取最大值
  • Math.min(array):取最小值
  • Math.round(x):将一个数四舍五入到整数
  • Math.floor(x):将一个数向下取整
  • Math.ceil(x):将一个数向上取整

String相关

String转Number

var str="123";
var num = parseInt(str);	// 存储为整数123
var str = "3.14";
var num = parseFloat(str);	// 存储为浮点数字3.14
var floatNumber = 3.9;
var intNumber = parseInt(floatNumber);	// 注意,这样会向下取整,存储为整数3
var str = "42.42";
var num = Number(str);	// 存储为浮点数字42.42

注意,上面所有方法都会忽略非数字部分

var str="123你好";
console.log(parseInt(str));	// 输出123

注意如果开头不是数字会返回NaN

var str="你好123";
console.log(parseInt(str));	// 输出NaN

因此建议使用以下方法防止出错:

var str = "Hello123";
var num = parseFloat(str);
if (!isNaN(num)) {
  console.log("转换成功: " + num);
} else {
  console.log("无法转换为数字");
}

常用方法

  • String.at(x):返回字符串的某一位,从0开始,可以使用-表示从最后一位开始
  • String.concat(s1, s2):返回两个字符串连接起来得到的新字符串
  • String.endsWith(s):返回字符串是否以字符(串)s为结尾,true&false
  • String.includes(s):返回字符串是否包含字符(串)strue&false
  • String.indexOf(s):返回字符串中,字符(串)s所在的位置索引值(从头开始第一次遇到的位置)
  • String.repeat(x):返回字符串重复了x
  • String.replace(s1, s2):返回新字符串,将原字符串中第一个s1字符(串)替换成s2
  • String.replaceAll(s1, s2):返回新字符串,将原字符串中所有的s1字符(串)替换成s2
  • String.slice(x1, x2):返回字符串截取从索引x1到索引x2的字符串
  • String.startsWith(s):返回字符串是否以字符(串)s为开头,true&false
  • String.substring(x1, x2):返回字符串截取从索引x1到索引x2的字符串
  • String.toLowerCase():返回全部小写的字符串
  • String.toUpperCase():返回全部大写的字符串

slice()substring()方法区别

  • substring()对所有的负数均视为0,而slice()则理解为倒数的几位字符
  • substring()可以自动颠倒顺序,因此不存在startend区分,而slice()严格遵循,如果顺序颠倒会返回空字符串