欢迎关注[前端小讴的github],阅读更多原创技术文章
单体内置对象
相关代码 →
- 由 ECMAScript 实现提供的,不依赖于宿主环境的对象,在 ECMAScript 程序执行之前就已经存在
- Global 和 Math
Global 对象
- 不属于任何其他对象的属性和方法,最终都是 Global 的属性和方法
- isNan(),isFinite(),parseInt(),parseFloat()
URI 编码方法 | 返回值 |
---|
encodeURI() | URI 编码,冒号、正斜杠、问号、井号除外 |
encodeURIComponent() | URI 编码,所有非标准字符 |
decodeURI() | URI 解码,只针对使用 encode()编码的字符 |
decodeURIComponent() | URI 解码,所有非标准字符 |
var uri = 'https://element cn/#tab'
console.log(encodeURI(uri))
console.log(encodeURIComponent(uri))
console.log(decodeURI('https%3A%2F%2Felement%20cn%2F%23tab'))
console.log(decodeURIComponent('https%3A%2F%2Felement%20cn%2F%23tab'))
eval 方法 | 返回值 |
---|
eval() | 将传入的参数当作实际的 EXMAScript 语句解析 |
- 将传入的参数当作实际的 EXMAScript 语句解析
- 被执行的代码具有与该执行环境相同的作用域链
- eval() 创建的变量或函数不会被提升
- 严格模式下,外部访问不到 eval() 中创建的变量或函数,为 eval 赋值也会报错
eval("console.log('hi')")
eval("function sayHi() {console.log('hi')}")
sayHi()
eval("var msg = 'hi'")
console.log(msg)
Global 对象属性 | 说明 |
---|
undefined | 特殊值 undefined |
NaN | 特殊值 NaN |
Infinity | 特殊值 Infinity |
Object | 构造函数 Object |
Array | 构造函数 Array |
Function | 构造函数 Function |
Boolean | 构造函数 Boolean |
String | 构造函数 String |
Number | 构造函数 Number |
Date | 构造函数 Date |
RegExp | 构造函数 RegExp |
Error | 构造函数 Error |
EvalError | 构造函数 EvalError |
RangeError | 构造函数 RangeError |
ReferenceError | 构造函数 ReferenceError |
SyntaxError | 构造函数 SyntaxError |
TypeError | 构造函数 TypeError |
URIError | 构造函数 URIError |
var color = 'red'
function sayColor() {
console.log(window.color)
}
window.sayColor()
Math 对象
max 和 min | |
---|
min() | 确定一组数值的最大值 |
max() | 确定一组数值的最小值 |
console.log(Math.max(3, 54, 32, 16))
console.log(Math.min(3, 54, 32, 16))
var values = [1, 2, 3, 4, 5]
console.log(Math.max.apply(Math, values))
舍入方法 | |
---|
ceil() | 向上取整 |
floor() | 向下取整 |
round() | 四舍五入 |
console.log(Math.ceil(1.9))
console.log(Math.floor(1.9))
console.log(Math.round(1.9))
random 方法 | |
---|
random() | 返回大于 0 小于 1 的随机数 |
console.log(Math.random())
console.log(Math.floor(Math.random() * 10 + 1))
function selectFrom(lowerValue, upperValue) {
var choices = upperValue - lowerValue + 1
return Math.floor(Math.random() * choices + lowerValue)
}
var num = selectFrom(7, 32)
console.log(num)
总结 & 问点
- 单体内置对象有哪些?分别有什么特点?
- Global 对象有哪些方法?分别有什么用法?
- eval 方法的用法和特点?
严格模式下,eval 方法受到哪些限制? - Global 对象有哪些属性?
- 在 web 浏览器中,将 global 全局对象作为什么对象实现的?
- Math 对象有哪些方法?分别有什么用法?
- 请用 Math 对象确定数组中的最大值/最小值
- 请用 Math 对象随机生成 m-n 之间的整数