global 作为js的全局对象,但其是无法直接访问的,但是在浏览器中浏览器是将这个对象当做是window对象的一部分,即Date 等Global的属性使用window.Date 可访问到
1.url 编码方法 ( encodeURL() 和 encodeURLComponent() )
1) encodeURI(); 用于整个url 且改方法不会对特殊字符进行编码
1 let url = "http://www.test.com/test one.hml#frist"; 2 console.log(encodeURI(url)); 3 输出 : //http://www.test.com/test%20one.hml#frist
、http%3A%2F%2Fwww.test.com%2Ftest%20one.hml%23frist
2)encodeURIComponent() 用于url的某一个片段,且会对任何非标准字符进行编码
1 let url = "http://www.test.com/test one.hml#frist"; 2 console.log(encodeURIComponent(url)); 3 输出 : http%3A%2F%2Fwww.test.com%2Ftest%20one.hml%23frist
2. urI 解码方法 ( decodeURI() 和 decodeURIComponent())
1) decodeURI(str) 对应的解码 是解encodeURI(str) 的反码
2)decodeURIComponent() 对应解 encodeURIComponent(); 可以解码任何特殊字符的编码
3. eval(js-str) 方法 (将js的字符串代码解析为可执行的js代码,类似于js的解析器);
使用eval()时,执行的代码块被认为是所作用的环境或者作用域的一部分,常用来动态插入js到指定作用域,其中在eval()中创建的任何变量以及函数都不会被提升,因为这行声明是在需要执行的eval()字符串之中,只有执行到eval()时才创建
console.log('123'); //可直接在js中打印 eval('console.log("test")'); 该字符串通过eval()解析也可直接在js中运行打印
--------------------------------分割线------------------------------
test() ; //Uncaught ReferenceError: test is not defined 因test函数在字符串中还未被eval()解析所以不会出现函数提升
eval("function test(){
console.log('test')
}");
在严格模式下 ‘use strict’;
直接给 eval = 8 赋值将会返回报错
即
(function(){
'use strict';
eval('var a = 123');
console.log(a)//此时a报错
}())