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
参考文档
每次读取 String 类型的时候都会经历三个步骤
创建 String 的实例
调用实例上特定的方法
销毁实例
解释下列代码
let s1 = "some text"; s1.color = "red"; // 会创建一个 String 实例,但是这一行执行完毕就会销毁该对象 console.log(s1.color); // 这一行会重新创建一个实例,因此会丢失 color 属性 // undefined
new String()
String()
注意 new Boolean(false) 是一个对象,所有的对象在逻辑运算操作都会被转换为 true
new Boolean(false)
true
尽量避免使用 new Boolean()(所有的 Wrapper 类型都尽量不要直接使用 new,所以最新的 BigInteger 和 Symbol 类型如果使用 new 就会报错)
new Boolean()
new
Global 为内置全局对象,该对象不能直接访问,但是可以访问其方法,比如 isNaN, isInfinite(), parseInt, parseFloat 等,这些内置的函数本质上是 Global 对象上的方法
isNaN
isInfinite()
parseInt
parseFloat
Global 对象上的其他方法
encodeURI, encodeURIComponent, decodeURI, decodeURIComponent
encodeURI
encodeURIComponent
decodeURI
decodeURIComponent
eval
Global 对象上的属性
基本类型的值: undefined, NaN, Infinity
undefined
NaN
Infinity
构造函数 Object, Array, Function, Boolean, String, Number, Date, RegExp, Symbol (再加一个红宝书没说的BigInt)
Object, Array, Function, Boolean, String, Number, Date, RegExp, Symbol
BigInt
错误类型构造函数 Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError
Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError
Window 对象
因为 ECMA-262 没有规定可以直接访问 Global 对象,因此浏览器通过 window 对 Global 对象进行了代理
window
因此 window 包含了 Global 对象的所有属性和方法,还有 BOM 的其他方法
除了通过 window 访问 Global 对象,还可以通过 this 来访问
this
// 注意,全局 this 在严格模式下会返回 undefined let global = function() { return this; }();
使用 Math 提供的方法性能比你用 JS 自己写的要好
其他方法查看文档
globalThis
globalThis 是 ES2020 新增的,红宝书没有,我这里扩展说一下。因为不同平台访问 Global 的方法不一样,浏览器通过 window,Node 通过 global。因此需要统一一个标准。
global
注意 globalThis 并不是上文说的 Global 对象。Global 对象在 JS 中是不能直接访问的。在浏览器中 globalThis 指向了 window 对象。
MDN文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis
提案:https://github.com/tc39/proposal-global
The text was updated successfully, but these errors were encountered:
🍺 star了~
Sorry, something went wrong.
No branches or pull requests
05 基本引用类型
Date
参考文档
RegExp
参考文档
基本类型的包装类型(Wrapper Types)
每次读取 String 类型的时候都会经历三个步骤
创建 String 的实例
调用实例上特定的方法
销毁实例
解释下列代码
new String()
和String()
的区别,不清楚请看 03 章笔记Boolean
注意
new Boolean(false)
是一个对象,所有的对象在逻辑运算操作都会被转换为true
尽量避免使用
new Boolean()
(所有的 Wrapper 类型都尽量不要直接使用new
,所以最新的 BigInteger 和 Symbol 类型如果使用new
就会报错)String、Number 等方法请查阅文档
JS 中内置的单例对象
Global 对象
Global 为内置全局对象,该对象不能直接访问,但是可以访问其方法,比如
isNaN
,isInfinite()
,parseInt
,parseFloat
等,这些内置的函数本质上是 Global 对象上的方法Global 对象上的其他方法
encodeURI
,encodeURIComponent
,decodeURI
,decodeURIComponent
eval
Global 对象上的属性
基本类型的值:
undefined
,NaN
,Infinity
构造函数
Object, Array, Function, Boolean, String, Number, Date, RegExp, Symbol
(再加一个红宝书没说的BigInt
)错误类型构造函数
Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError
Window 对象
因为 ECMA-262 没有规定可以直接访问 Global 对象,因此浏览器通过
window
对 Global 对象进行了代理因此
window
包含了 Global 对象的所有属性和方法,还有 BOM 的其他方法除了通过
window
访问 Global 对象,还可以通过this
来访问Math 对象
使用 Math 提供的方法性能比你用 JS 自己写的要好
其他方法查看文档
globalThis
globalThis
是 ES2020 新增的,红宝书没有,我这里扩展说一下。因为不同平台访问 Global 的方法不一样,浏览器通过window
,Node 通过global
。因此需要统一一个标准。注意
globalThis
并不是上文说的 Global 对象。Global 对象在 JS 中是不能直接访问的。在浏览器中globalThis
指向了window
对象。MDN文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis
提案:https://github.com/tc39/proposal-global
The text was updated successfully, but these errors were encountered: