js之global 对象 方法

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报错
  }())

 

posted @ 2018-12-11 21:31  link_xjxj  阅读(8977)  评论(0编辑  收藏  举报