类型转换和方法
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
:自然对数的底数eMath.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)
:返回字符串是否包含字符(串)s
,true
&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()
可以自动颠倒顺序,因此不存在start
和end
区分,而slice()
严格遵循,如果顺序颠倒会返回空字符串