看资料时翻到了这一部分,在项目中总会用到,所以记录一下。
单体内置对象
单体内置对象是指:“由ECMAScript实现提供的、不依赖宿主环境的对象,这些对象在ECMAScript程序之前就存在",我们不必显式的实例化。
Global对象
不属于任何对象的属性和方法最终都是它的属性和方法,如isNaN(),parseInt()这些,也包括全局作用域定义的变量和函数。Global对象无法直接访问。
URI编码方法
URI编码方法是属于Global对象的方法,可以用UTF-8编码替换URI地址中的无效字符
- encodeURI()
作用于整个URI,不会对本身属于URI的特殊字符进行编码,如":","/","?","#",
对应解码使用decodeURI()。 - encodeURIComponent()
作用于URI的某一部分,会将URI中的全部特殊字符进行编码,
对应解码使用decodeURIComponebt()。
eval()方法
eval()方法相当于一个js解析器,会将传入的参数当作实际的代码来解析,并且在eval()调用位置插入真是代码执行,作用域与eval()的调用环境为同一个。
var str = 'alert(111)'
eval(str)
这一步代码会弹出警告框111。
eval('function sayHi(){alert("Hi")}')
sayHi()
这一步同样会弹出警告框Hi。
eval()执行时创建的变量和函数不存在提升,严格模式下,就不可以访问eval()创建的变量和函数
"use strict"
eval('function sayHi(){alert("Hi")}')
sayHi()
Global对象的属性
undefined,NaN等以及所有的引用类型,都是Global对象的属性。
window对象
web浏览器将Global对象作为window对象的一部分来实现,因此全局变量和函数都是window的属性和方法。
获取global对象
var global = function(){
return this
}()
这里我自己输出看了一下。
Math对象
Math对象由很多属性,大多数是特殊值,如:Math.PI等,其余的使用时再查一下。
列举一下Math的方法:
- min():最小值
- max():最大值
- ceil():向上舍入
- round():四舍五入
- floor():向下舍入
- random():取0-1之前的随机数,不包含1
这里只列举常用的,还有一些特殊的比如取正弦值,需要用到时再查。