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}'
相关推荐
一碗谦谦粉7 分钟前
Maven 依赖调解的两大原则
java·maven
netyeaxi37 分钟前
Java:使用spring-boot + mybatis如何打印SQL日志?
java·spring·mybatis
收破烂的小熊猫~1 小时前
《Java修仙传:从凡胎到码帝》第四章:设计模式破万法
java·开发语言·设计模式
中微子1 小时前
React状态管理最佳实践
前端
猴哥源码1 小时前
基于Java+SpringBoot的动物领养平台
java·spring boot
老任与码1 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
烛阴1 小时前
void 0 的奥秘:解锁 JavaScript 中 undefined 的正确打开方式
前端·javascript
小兵张健1 小时前
武汉拿下 23k offer 经历
java·面试·ai编程
中微子1 小时前
JavaScript 事件与 React 合成事件完全指南:从入门到精通
前端
FreeBuf_1 小时前
Apache组件遭大规模攻击:Tomcat与Camel高危RCE漏洞引发数千次利用尝试
java·tomcat·apache