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報錯
}())