一. 字符串转换
1.1. 对象转字符串stringify
var str = JSON.stringify(weather);
1.2. 字符串转对象
var obj = JSON.parse(str);
1.3. 数字转字符串toString()
var num = 2023;
var str = '';
str = num.toString();
1.4. 字符串转数字parseInt(string)
parseInt('123'),返回的结果就是int型的123
parseInt('123abc'),返回的结果就是12
1.5. 字符串转数字parseInt(string)和parseFloat()
前者把值转换成整数,后者把值转换成浮点数
parseInt('123'),//返回的结果就是int型的123
parseInt('123abc'),//返回的结果就是123
parseFloat('123.4abc'),//返回的结果就是123.4
parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:
console.log('数字:', parseInt("AF", 16)); //returns 175
console.log('数字:', parseInt("10", 2)); //returns 2
console.log('数字:', parseInt("10", 8)); //returns 8
console.log('数字:', parseInt("10", 10)); //returns 10
二. 其他类型转换
2.1. 强制类型转换
强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
Boolean型的强制类型转换代码
console.log('强制类型转换:', Boolean("")) //false – empty string
console.log('强制类型转换:', Boolean("hi")) //true – non-empty string
console.log('强制类型转换:', Boolean(100)) //true – non-zero number
console.log('强制类型转换:', Boolean(null)) //false - null
console.log('强制类型转换:', Boolean(0)) //false - zero
console.log('强制类型转换:', Boolean(new Object())) //true – object
2.2. Number()的强制类型转换代码
与parseInt()和parseFloat()方法的处理方式相似
console.log('强制类型转换:', Number(false)) //0
console.log('强制类型转换:', Number(true)) //1
console.log('强制类型转换:', Number(undefined)) //NaN
console.log('强制类型转换:', Number(null)) //0
console.log('强制类型转换:', Number("5.5 ")) //5.5
console.log('强制类型转换:', Number("56 ")) //56
console.log('强制类型转换:', Number("5.6.7 ")) //NaN
console.log('强制类型转换:', Number(new Object())) //NaN
console.log('强制类型转换:', Number(100)) //100
2.3. 利用js变量弱类型转换
对数字处理,保留小数点后数字 toFixed() (toFixed() 函数会四舍五入)
var num = 2.446242342;
num = num.toFixed(2);
console.log('输出结果:', num) // 输出结果: 2.45
对数字处理,保留小数点后数字 (不四舍五入)
var num2 = Math.floor(15.7784514000 * 100) / 100
console.log('输出结果:', num2) // 输出结果为 15.77
三.判断字符串中是否包含某个字符串
3.1. indexOf
indexOf 返回指定字符串在该字符中首次出现的位置,如果没有找到,则返回 -1
indexOf 接收两个参数,第一是需要搜索的字符串,第二个参数是检索的位置,默认为0
//str.indexOf("")的值为-1时表示不包含
var str = "hello Tara";
if(str.indexOf("Tara") !== -1){alert("Hi,Tara");
}
3.2. lastIndexOf
lastIndexOf是从字符串末尾开始搜索,返回指定字符串在该字符中最后一次出现的位置
lastIndexOf 接收两个参数,第一个是需要搜索的字符串,第二个参数是检索的位置,默认是 sting.length - 1
let str = 'abcdea';
//例如,从str第三位向前开始搜索 'a'
console.log(str.lastIndexOf('a',2));// 0
console.log(str.lastIndexOf('a'));// 5
3.3. includes
lincludes() 方法用于判断字符串是否包含指定的子字符串,返回 true 或 false
includes 接收两个参数 第一个参数为指定字符串, 第二个参数为查找位置,默认为0
//str.includes("")返回一个布尔值,值为true时表示包含
var str = "hello Tara";
if(str.includes("Tara")){alert("Hi,Tara");
}
3.4. match
match方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,如果未找到,则返回 null(也可以用来查询字符串中某个字符出现的次数)。全局搜索,忽略大小写。
let str = 'abcdabcda';
console.log(str.match(/a/gi));//['a','a','a']
console.log(str.match(/z/gi));// null
3.5. search
seacrh方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,如果没有则返回 -1
let str = 'abcde';
console.log(str.search('a'));// 0
console.log(str.search(/A/i));//使用正则匹配忽略大小写检索 返回 0
3.6. 正则表达式 RegExp 对象
3.6.1. test方法
检索字符串中指定的值。返回 true 或 false。
let str = 'abcdef';
let reg = /A/i;
console.log(reg.test(str));// true
3.6.2.exec方法
检索字符串中指定的值。返回找到的值,并确定其位置。
如果字符串中有匹配的值返回该匹配值,否则返回 null。
let str = 'abcdef';
console.log(/a/.exec(str))// 返回匹配对象
console.log(/z/.exec(str))// null  检索字符串中指定的值。返回 true 或 false。