10、JS-引用类型 单体内置对象
1、global
内置对象就是JS自己提供的、不依赖于宿主环境的对象,像前面提到的对象基本都是,还有两个单体内置对象,global和math
不属于任何其他对象的属性和方法,最终都是它的属性和方法,所有在全局作用域中定义的属性和方法都是global对象的属性,除了isNaN()、isFinite()、parseInt()及parseFloat(),还有一些其他的方法
1.URL编码方法
encodeURI()和encodeURIComponet()方法可以对URI进行编码,以便发送给浏览器,有效的URI编码中不能包含无效字符,它会把这些无效字符使用UTF-8编码替换掉,前者主要用于整个URI,并且不会对其中任何非标准字符进行转变,后者主要是对URI的一部分进行编码,会对发现的任何非标准字符进行编码
console.log(encodeURI("https://i.cnblogs.com/posts/ edit")) console.log(encodeURIComponent("https://i.cnblogs.com/posts/ edit")) https://i.cnblogs.com/posts/%20edit https%3A%2F%2Fi.cnblogs.com%2Fposts%2F%20edit
var encode_uri=encodeURI("https://i.cnblogs.com/posts/ edit")
var encodecomp_uri =encodeURIComponent("https://i.cnblogs.com/posts/ edit")
console.log(decodeURI(encode_uri) )
console.log(decodeURIComponent(encodecomp_uri) )
也可以用上面的两种方法分别解码
2.eval()方法
只接收一个参数,要执行的JS字符串,会将传入的字符串当做JS语句解析,然后把执行结果插入到原位置,这个方法执行的代码被认为具有与该执行环境相同的作用域链,所以eval执行的代码可以引用包含在作用域链中的变量
eval('console.log("nobody cares")')
var name ="xiaom" eval("console.log(name+'shuo')") //xiaomshuo
但是在严格模式下,外部无法访问的到eval内部的执行语句,只在语句执行时,这些变量和函数才被定义
- window对象
web浏览器会将全局独享作为window对象的 一部分加以实现,在全局作用域定义和声明的所有变量和函数,都成为了window对象的属性
2、Math
不像其他的,它不是构造函数,单纯的一个工具,可以直接调用
Math.abs
四舍五入方法
Math.ceil 向上取整
Math.floor 向下取整
Math.round 四舍五入
Math.random 取0~1的随机数
Math.max 最大值
Math.min 最小值
Math.pow(a,b) 返回a的b次幂
Math.sprt(a) 对a开方