We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
全局对象:
[[Construct]]
new
[[Call]]
[[Prototype]]
globalThis
realm.[[GlobalEnv]].[[GlobalThisValue]]
{ [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
Infinity
{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }
eval 函数就是 %eval% 固有对象。
eval
String
注意:如果调用上下文正在对形参初始化器求值或调用上下文的代码或者eval代码是 严格模式,那么eval代码不能在调用eval的上下文变量环境中实例化变量或函数绑定。上述绑定会在新的只有eval代码才能访问的变量环境中实例化。let, const, class 声明总是在新的词法环境进行实例化绑定。
let, const, class
先转 Number
Number
isFinite(Infinity) // false isFinite(NaN) // false isFinite(-Infinity) // false isFinite(0) // true isFinite(2e64) // true isFinite("0") // true isFinite(9n) // Uncaught TypeError: Cannot convert a BigInt value to a number isFinite(undefined) // false isFinite(null) // true isFinite({}) // false isFinite([]) // true
isFinite 函数就是 %isFinite% 固有对象。
由于内部用的是 ToNumber 算法,所以对于对象,改写其 toString 方法返回有限值就能得到 true
toString
const obj = { toString() { return 1 } } Number(obj) // 1 isFinite(obj) // true
对应 %isNaN% 固有对象。
isNaN(NaN) // true isNaN({}) // true
内部用的是 ToNumber 算法,所以对于对象,改写其 toString 方法返回非 NaN 值就能得到 true
NaN
The text was updated successfully, but these errors were encountered:
No branches or pull requests
全局对象:值属性与函数属性(globalThis/Infinity/NaN/undefined/eval/isFinite/isNaN)
全局对象:
[[Construct]]
内置方法;不能被new
操作符当成 构造器 调用[[Call]]
内置方法;不能被当成函数调用[[Prototype]]
内置插槽,其值依赖于具体实现全局对象的值属性
globalThis
属性初始值为realm.[[GlobalEnv]].[[GlobalThisValue]]
{ [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
Infinity
值为 +∞(见 重学js —— js数据类型(二):Number(一))。{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }
{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }
{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }
全局对象的函数属性
eval(x)
eval
函数就是 %eval% 固有对象。PerformEval( x, callerRealm, strictCaller, direct )
String
类型,返回 xisFinite( number )
isFinite 函数就是 %isFinite% 固有对象。
isNaN
对应 %isNaN% 固有对象。
本篇结束,后续见下一篇
The text was updated successfully, but these errors were encountered: