引用型別 單體內建物件

2021-08-06 01:50:40 字數 2006 閱讀 5124

內建物件:

有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還定義了...