欢送关注前端小讴的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)) // 54console.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)) // 2console.log(Math.floor(1.9)) // 1console.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 之间的整数