欢迎关注前端小讴的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)) // https://element%20cn/#tab,本身属于URI的字符不编码(冒号、正斜杠、问号、井号)
console.log(encodeURIComponent(uri)) // https%3A%2F%2Felement%20cn%2F%23tab,编码所有非标准字符
console.log(decodeURI('https%3A%2F%2Felement%20cn%2F%23tab')) // https%3A%2F%2Felement cn%2F%23tab,只针对使用 encode()编码的字符解码
console.log(decodeURIComponent('https%3A%2F%2Felement%20cn%2F%23tab')) // https://element cn/#tab,解码所有非标准字符
eval 方法 | 返回值 |
---|
eval() | 将传入的参数当作实际的 EXMAScript 语句解析 |
- 将传入的参数当作实际的 EXMAScript 语句解析
- 被执行的代码具有与该执行环境相同的作用域链
- eval() 创建的变量或函数不会被提升
- 严格模式下,外部访问不到 eval() 中创建的变量或函数,为 eval 赋值也会报错
eval("console.log('hi')") // "hi",将传入的参数当作实际的 EXMAScript 语句解析
eval("function sayHi() {console.log('hi')}")
sayHi() // "hi",被执行的代码具有与该执行环境相同的作用域链
// console.log(msg) // 报错,eval() 创建的变量或函数不会被提升
eval("var msg = 'hi'")
console.log(msg) // "hi",被执行的代码具有与该执行环境相同的作用域链
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 |
// web浏览器将global全局对象作为window对象
var color = 'red'
function sayColor() {
console.log(window.color)
}
window.sayColor() // red
Math 对象
max 和 min | |
---|
min() | 确定一组数值的最大值 |
max() | 确定一组数值的最小值 |
console.log(Math.max(3, 54, 32, 16)) // 54
console.log(Math.min(3, 54, 32, 16)) // 3
var values = [1, 2, 3, 4, 5]
console.log(Math.max.apply(Math, values)) // 把 Math 对象作为 apply()的第一个参数,将数组作为第二个参数
舍入方法 | |
---|
ceil() | 向上取整 |
floor() | 向下取整 |
round() | 四舍五入 |
console.log(Math.ceil(1.9)) // 2
console.log(Math.floor(1.9)) // 1
console.log(Math.round(1.9)) // 2
random 方法 | |
---|
random() | 返回大于 0 小于 1 的随机数 |
console.log(Math.random()) // 大于 0 小于 1 的随机数
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 之间的整数
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。