JavaScript 全局函数与JSON方法

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}'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值