內建物件:
有ecmascript實現提供的,不依賴 宿主環境的物件,在**執行前就已經存在的。
例如:string,array,object
以及es5定義的global和math
global(全域性物件),事實上沒有全域性變數或全域性函式,所有在全域性作用域下定義的屬性和函式都是global物件的屬性。
為何對uri進行編碼?
因為我們一般向後台傳送的如
name1=value1&name2=value2;
其實是將其轉化為ascii碼後,計算機解讀的。
3d:= 來判斷name和value的分離
26:& 來判斷引數間的分離
但是會有問題如果name中帶有&時就會發生解析錯誤
如:na&me1=hcd&name2=h;
哪些字元需要進行編碼?
1)空格:url在傳輸的過程,或者使用者在排版的過程,或者文字處理程式在處理url的過程,都有可能引入無關緊要的空格,或者將那些有意義的空格給去掉。
2)引號以及<>:引號和尖括號通常用於在普通文字中起到分隔url的作用
3)#:通常用於表示書籤或者錨點
4)%:百分號本身用作對不安全字元進行編碼時使用的特殊字元,因此本身需要編碼
5){}|\^`~:某一些閘道器或者傳輸**會篡改這些字元
如何編碼:
主要用於整個的uri編碼,並且不會對本身就屬於uri的特殊字元編碼,如冒號,斜槓
var str = " value.html#start"
#start
將空格編碼為%20
用decodeuri進行解碼
主要用於對uri的某一段進行編碼,換替換所有的而非英文和數字字元。
var str = " value.html#start";
%20value.html%23start
所以我們一般對illage value.html進行編碼,將空格轉碼,
用decodeuricomponent進行解碼。
我們用encodeuricomponent()更多一些。
會直接解析()內的**
eval("var str = 'hcd'");
console.log(str)//"hcd"
var str = 'hcd';
eval(console.log(str))//"hcd"
但是嚴格模式下會出錯。
並且可能有安全問題。
ecmascript雖然沒有指出如何直接訪問global物件,但是web瀏覽器都是將這個物件作為window物件的一部分加以實現的。
math.max(0,1,1,2,5.3,5,5.5)
math.min(0,1,1,2,5.3,5,5.5)//0
math.ceil(2.2)//3 向上取整
math.floor(2.5)//2 向下取整
math.round(2.5)//3 四捨五入
math.random() 取0到1之間的隨機數
單體內建物件 單體內建物件
1 global物件 所有全域性作用域定義的屬性與函式,都是global物件的屬性。1.1 uri編碼方法 encodeuri 不會對本身屬於uri的特殊符號進行編碼。uri解碼方法 decodeuri 只能對使用encodeuri 替換的字元進行解碼 decodeuricomponent 能夠解碼...
單體內建物件 單體內建物件
內建物件 由ecmascript實現提供的,不依賴宿主環境的物件,這些物件再es程式執行之前就已經存在 global物件 global全域性物件是乙個特別的物件 兜底物件 不屬於其他物件的屬性和方法,都屬於global物件。如 isnan isfinite parseint parsefloat 註...
單體內建物件 單體內建物件
ecmascript 262對內建物件的定義是 由ecmascript實現提供的,不依賴於宿主環境的物件,這些物件在ecmascript程式執行之前就已經存在了。意思就是說,開發人員不必顯示地例項化內建物件,因為它們已經例項化了。如object,array,string。ecmascript還定義了...