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}'
相关推荐
五月茶3 分钟前
Spring MVC
java·spring·mvc
网络安全-老纪6 分钟前
网络安全-js安全知识点与XSS常用payloads
javascript·安全·web安全
API_technology9 分钟前
电商API安全防护:JWT令牌与XSS防御实战
前端·安全·xss
sjsjsbbsbsn12 分钟前
Spring Boot定时任务原理
java·spring boot·后端
yqcoder14 分钟前
Express + MongoDB 实现在筛选时间段中用户名的模糊查询
java·前端·javascript
十八朵郁金香35 分钟前
通俗易懂的DOM1级标准介绍
开发语言·前端·javascript
菜鸟蹦迪42 分钟前
八股文实战之JUC:ArrayList不安全性
java
2501_9032386542 分钟前
Spring MVC配置与自定义的深度解析
java·spring·mvc·个人开发
逻各斯1 小时前
redis中的Lua脚本,redis的事务机制
java·redis·lua
计算机毕设指导61 小时前
基于Springboot学生宿舍水电信息管理系统【附源码】
java·spring boot·后端·mysql·spring·tomcat·maven