全局内置对象

最新更新: 2019-08-28 09:29:28 阅读: 48次

NaN

 NaN 的值是 NaN。这个属性拥有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。

Infinity

 Infinity 的值是 +∞。这个属性拥有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。

undefined

 undefined 的值是 undefined。这个属性拥有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。


eval (x)

 一个 eval 函数的直接调用是表示为符合以下两个条件的 CallExpression:

 解释执行 CallExpression 中的 MemberExpression 的结果是个 引用 ,这个引用拥有一个 环境记录项 作为其基值,并且这个引用的名称是 "eval"。


parseInt (string , radix)

 parseInt 函数根据指定的参数 radix,和 string 参数的内容解释结果来决定,产生一个整数值。string 开头的空白会被忽略。radix:可选,表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0或者undefined,则数字将以 10 为基础来解析。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。如果string 是以0开头,则认为该值是八进制的,将会以8进制解析该数,然后再确定radix的转换进制后再转换,也就是如果是0开头,先要将string转换为10进制,确认radix进制后再进行转换;如果string 是以0x或者0X开头,则认为该值十六进制的,与8进制的类似。

例子:


parseInt(4545,17)
//21170
parseInt(067,8)
//45  相当于下面的运算
6*8+7
//55 
5*8+5
//45
parseInt(067)
//55
parseInt(67)
//67
parseInt(0x55,20)
//165
5+5*16
//85
5+8*20
//165


 当调用 parseInt 函数时,采用以下步骤:

  1. 令 inputString 为 ToString(string)。
  2. 令 S 为一个新创建的子字符串,它由 inputString 的第一个非 StrWhiteSpaceChar 字符和它后面跟着的所有字符组成。( 换句话说 , 删掉前面的空白。) 如果 inputString 不包含任何这样的字符 , 则令 S 为空字符串。
  3. 令 sign 为 1。
  4. 如果 S 不是空并且 S 的第一个字符是减号 -, 则令 sign 为−1。
  5. 如果 S 不是空并且 S 的第一个字符加号 + 或减号 -, 则删除 S 的第一个字符。
  6. 令 R = ToInt32(radix).
  7. 令 stripPrefix 为 true.
  8. 如果 R ≠ 0, 则
    1. 如果 R < 2 或 R > 36, 则返回 NaN。
    2. 如果 R ≠ 16, 令 stripPrefix 为 false.
  9. 否则 , R = 0
    1. 令 R = 10.
  10. 如果 stripPrefix 是 true, 则
    1. 如果 S 长度大于 2 并且 S 的头两个字符是“0x”或“0X”, 则删除 S 的头两个字符并且令 R = 16.
  11. 如果 S 包含任何不是 radix-R 进制的字符,则令 Z 为 S 的这样的字符之前的所有字符组成的子字符串;否则令 Z 为 S。.
  12. 如果 Z 是空 , 返回 NaN.
  13. 令 mathInt 为 Z 的 radix-R 进制表示的数学值,用字母 A-Z 和 a-z 来表示 10 到 35 之间的值。( 但是 , 如果 R 是 10 并且 Z 包含多余 20 位的值 , 可以替换 20 位后的每个数字为 0, 这是实现可选的功能 ; 如果 R 不是 2, 4, 8, 10, 16, 32, 则 mathInt 可以是 Z 的 radix-R 进制表示的依赖于实现的近似值。)
  14. 令 number 为 mathInt 的数值 .
  15. 返回 sign × number.

 parseInt 可以只把 string 的开头部分解释为整数值;它会忽略所有不能解释为整数记法的一部分的字符,并且没有指示会给出任何这些忽略的字符。

parseFloat (string)

 parseFloat 函数根据 string 参数的内容解释为十进制字面量的结果来决定,产生一个数值。

 当调用 parseFloat 函数,采用以下步骤: 

  1. 令 inputString 为 ToString(string).
  2. 令 trimmedString 为一个新创建的子字符串,它由 inputString 的非 StrWhiteSpaceChar 字符的最左边字符和它右边跟着的所有字符组成。( 换句话说 , 删掉前面的空白。) 如果 inputString 不包含任何这样的字符 , 则令 trimmedString 为空字符串。
  3. 如果 trimmedString 或 trimmedString 的任何前缀都不满足 StrDecimalLiteral 的语法 , 返回 NaN。
  4. 令 numberString 为满足 StrDecimalLiteral 语法的 trimmedString 的最长前缀,可能是 numberString 自身。
  5. 返回 numberString 的 MV 的数值。

 parseFloat 可以只把 string 的开头部分解释为数值;它会忽略所有不能解释为数值字面量记法的一部分的字符,并且没有指示会给出任何这些忽略的字符。

isNaN (number)

 如果指定参数为 NaN,则返回 true,否则返回 false。

  1. 如果 ToNumber(number) 是 NaN, 返回 true.
  2. 否则 , 返回 false.

 一个用 ECMAScript 代码来测试值 X 是否是 NaN 的方式是用 X !== X 表达式。当且仅当 X 是 NaN 时结果才是 true。

isFinite (number)


全局 isFinite() 函数用来判断被传入的参数值是否为一个有限数值(finite number)。在必要情况下,参数会首先转为一个数值。


isFinite 是全局的方法,不与任何对象有关系。

你可以用这个方法来判定一个数字是否是有限数字。isFinite方法检测它参数的数值。如果参数是NaN,正无穷大或者负无穷大,会返回false,其他返回true。

Object ( . . . )


Function ( . . . )


Array ( . . . )


String ( . . . )


Boolean ( . . . )


Number ( . . . )


Date ( . . . )


RegExp ( . . . )


Error ( . . . )


EvalError ( . . . )


RangeError ( . . . )


ReferenceError ( . . . )


SyntaxError ( . . . )


TypeError ( . . . )


URIError ( . . . )

全局对象的其他属性

Math


JSON