1、isFinite()
:确定数字是否是有限的合法数字。
如果值为 +infinity、-infinity 或 NaN(非数字),则此函数返回 false,否则返回 true。
var a = isFinite(123) + " ";
var b = isFinite(-1.23) + " ";
var c = isFinite(5-2) + " ";
var d = isFinite(0) + " ";
var e = isFinite("123") + " ";
var f = isFinite("Hello") + " ";
var g = isFinite("2005/12/12");
a + b + c + d + e + f + g;
// 'true true true true true false false'
2、isNaN()
:确定值是否为非数字。
如果该值等于 NaN,则此函数返回 true。否则返回 false。全局 isNaN() 函数将测试值转换为数字,然后对其进行测试。Number.isNaN() 不会将值转换为数字,并且不会为任何非数字类型的值返回 true。
isNaN(123) //false
isNaN(-1.23) //false
isNaN(5-2) //false
isNaN(0) //false
isNaN('123') //false
isNaN('Hello') //true
isNaN('2005/12/12') //true
isNaN('') //false
isNaN(true) //false
isNaN(undefined) //true
isNaN('NaN') //true
isNaN(NaN) //true
isNaN(0 / 0) //true
isNaN(null) //false
3、Number()
:将对象参数转换为表示对象值的数字。
如果该值无法转换为合法数字,则返回 NaN。如果参数是 Date 对象,则 Number()
函数返回自 UTC 1970 年 1 月 1 日午夜以来的毫秒数。
var x1 = true;
var x2 = false;
var x3 = new Date();
var x4 = "999";
var x5 = "999 888";
var n =
Number(x1) + " " +
Number(x2) + " " +
Number(x3) + " " +
Number(x4) + " " +
Number(x5);
n
// '1 0 1728612976995 999 NaN'
4、parseFloat()
:解析字符串并返回浮点数。
此函数确定指定字符串中的第一个字符是否为数字。如果是,它会解析字符串直到到达数字的末尾,并将数字作为数字而不是字符串返回。
只返回字符串中的第一个数字!
允许前导和尾随空格。
如果第一个字符不能转换为数字,
parseFloat()
返回 NaN。
var a = parseFloat("10")
var b = parseFloat("10.00")
var c = parseFloat("10.33")
var d = parseFloat("34 45 66")
var e = parseFloat(" 60 ")
var f = parseFloat("40 years")
var g = parseFloat("He was 40")
a+' '+b+' '+c+' '+d+' '+e+' '+f+' '+g
// '10 10 10.33 34 60 40 NaN'
5、parseInt()
:解析字符串并返回整数。
第二个参数用于指定使用哪种进制,例如基数为 16(十六进制)表示字符串中的数字应从十六进制数解析为十进制数。
如果第二个参数被省略,JavaScript 假定如下:
- 如果字符串以 "0x" 开头,则基数为 16(十六进制)
- 如果字符串以 "0" 开头,则基数为 8(八进制)。此特性已弃用
- 如果字符串以任何其他值开头,则基数为 10(十进制)
只返回字符串中的第一个数字!
允许前导和尾随空格。
如果第一个字符不能转换为数字,
parseInt()
返回 NaN。
var a = parseInt("10") + " ";
var b = parseInt("10.00") + " ";
var c = parseInt("10.33") + " ";
var d = parseInt("34 45 66") + " ";
var e = parseInt(" 60 ") + " ";
var f = parseInt("40 years") + " ";
var g = parseInt("He was 40") + " ";
var h = parseInt("10", 10)+ " ";
var i = parseInt("010")+ " ";
var j = parseInt("10", 8)+ " ";
var k = parseInt("0x10")+ " ";
var l = parseInt("10", 16)+ " ";
var n = a + b + c + d + e + f + g + " " + h + i + j + k +l;
n
// '10 10 10 34 60 40 NaN 10 10 8 16 16 '
=================================JSON====================================
6、JSON.parse()
:解析字符串并返回 JavaScript 对象。
该字符串必须以 JSON 格式编写。JSON.parse() 方法可以选择使用函数来转换结果。
JSON.parse('{"name":"lisi", "age":20}');
// {name: 'lisi', age: 20}
使用函数
JSON.parse('{"name":"lisi", "age":20}', function(key, value){
if(key === 'name') {
return value.toUpperCase()
}
return value
});
// {name: 'LISI', age: 20}
7、JSON.stringify()
:将 JavaScript 对象转换为字符串。
参数 | 描述 |
---|---|
obj | 必需。要转换为字符串的值。 |
replacer | 可选。用于转换结果的函数或数组。 如果该参数是函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理; 如果该参数是数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中; 如果该参数为 null 或者未提供,则对象所有的属性都会被序列化。 |
space | 可选。字符串或数字值。指定缩进用的空白字符串,用于美化输出(pretty-print)。 如果参数是个数字,它代表有多少的空格;上限为 10。该值若小于 1,则意味着没有空格; 如果该参数为字符串(当字符串长度超过 10 个字母,取其前 10 个字母),该字符串将被作为空格; 如果该参数没有提供(或者为 null),将没有空格。 |
var obj = { "name":"Bill", "age":19, "city":"Seattle"};
JSON.stringify(obj);
// '{"name":"Bill","age":19,"city":"Seattle"}'
使用替换函数
// 函数
var obj = { "name":"Bill", "age":"19", "city":"Seattle"};
JSON.stringify(obj, function (key, value) {
if (key == "city") {
return value.toUpperCase();
} else {
return value;
}
});
// '{"name":"Bill","age":"19","city":"SEATTLE"}'
// 数组
var obj = { "name":"Bill", "age":"19", "city":"Seattle"};
JSON.stringify(obj, ['name']);
// '{"name":"Bill"}'
// null
var obj = { "name":"Bill", "age":"19", "city":"Seattle"};
JSON.stringify(obj, null);
//'{"name":"Bill","age":"19","city":"Seattle"}'
使用 space 参数
var obj = { "name":"Bill", "age":"19", "city":"Seattle"};
JSON.stringify(obj, null, 10);
// '{\n "name": "Bill",\n "age": "19",\n "city": "Seattle"\n}'
var obj = { "name":"Bill", "age":"19", "city":"Seattle"};
JSON.stringify(obj, null, 'SPACE');
// '{\nSPACE"name": "Bill",\nSPACE"age": "19",\nSPACE"city": "Seattle"\n}'