JavaScript 全局函数与JSON方法

1、isFinite() :确定数字是否是有限的合法数字。

如果值为 +infinity、-infinity 或 NaN(非数字),则此函数返回 false,否则返回 true。

javascript 复制代码
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。

javascript 复制代码
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 日午夜以来的毫秒数。

javascript 复制代码
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。

javascript 复制代码
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。

javascript 复制代码
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() 方法可以选择使用函数来转换结果。

javascript 复制代码
JSON.parse('{"name":"lisi", "age":20}');

// {name: 'lisi', age: 20}

使用函数

javascript 复制代码
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),将没有空格。
javascript 复制代码
var obj = { "name":"Bill", "age":19, "city":"Seattle"};
JSON.stringify(obj);

// '{"name":"Bill","age":19,"city":"Seattle"}'

使用替换函数

javascript 复制代码
// 函数
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 参数

javascript 复制代码
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}'
相关推荐
bestlanzi13 分钟前
使用nvm管理node环境
前端·vue.js·npm
J2虾虾16 分钟前
Spring AI Alibaba文档
java·人工智能·spring
YikNjy23 分钟前
break和continue
java·开发语言·算法
SomeOtherTime24 分钟前
Geojson相关(AI回答)
java·前端·python
日月云棠35 分钟前
10 Integer —— 最常用的整数包装类深度解析
java·后端
秋940 分钟前
java项目中cpu飙升排查及解决方法
java·开发语言
野生技术架构师41 分钟前
牛客网2026最新大厂Java高频面试题精选(附标准答案)
java·开发语言
PH = 744 分钟前
JAVA的SPI机制
java·开发语言
一 乐1 小时前
高校实习信息发布网站|基于Spring Boot的高校实习信息发布网站的设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·高校实习信息发布网站
weelinking1 小时前
【产品】11_实现后端接口——数据在背后如何流动
java·人工智能·python·sql·oracle·json·ai编程