js jquery中 的數據類型


任何一門語言, buguan 是動態的, 還是像C語言的, 都有嚴格的 類型 "概念的", 這個是由於 編譯器和解釋器要求的, 需要的. 所以在是使用像 js, jquey ,php 等這些語言的時候, 在背后 同樣 要有 嚴格的 類型 的思想.. 唯一的區別是: 你不需要 顯式的 去定義/規定 變量的類型. 所以以前有一個誤解: 認為動態語言, 就沒有數據類型, 就可以不管數據類型, 可以隨便操作, 這個是非常 錯誤, 而且很 害人的.

參考這篇文章: http://www.cnblogs.com/java-my-life/archive/2012/08/06/2625065.html
這篇w3school的文章也比較好: http://www.w3school.com.cn/js/js_datatypes.asp

js是一種 松散類型/ 動態類型的 語言! 就是說, 一個變量可以付給不同類型的值: var foo; // undefined foo=1; // number foo=true; // Boolean

有:
一般而言, 類型的名稱用 首字母大寫, 如: Integer, String , 而數據類型的具體值, 則是小寫的, 如: 類型Undefined, 具體的值就是:undefined... 

除了前面常見的, 已經說了的類型外, 還包括:

Function:
Map: 也就是json的{"background": "blue", "border": "1px solid #333"}

==================================================== ===

Null類型和Undefined類型的區別 , 如何理解 null指針!

Undefined類型, 只有一個值: undefined. 表示這個變量沒有值, 即沒有給變量賦值.如 var person; 就是只聲明了一個變量, 並沒有給變量賦值, 所以它的類型是 Undefined, 類型值是undefined. 這個時候, 沒有給undefined分配內存...

但是, Null類型 是表示 變量是 有值的! Null類型的 值也只有一個: null. 當將"null" 賦值給一個變量的時候, var person = null , 就表示 這個變量是有值的了!! 因為你 明明確確的 給它賦值了, 使用了 "=" 進行賦值! 只不過表示 這個變量的值是一個指針. (null就是一個指針, 表示一個 指向 空的 指針, 或者說是一個 "空指針", 指向 "任意未分配內存"的指針, 也可以理解為 系統沒有給 "null這個指針 " 沒有給它賦值, 但實際上 是產生了一個 指針的, 只不過這個指針沒有初始化, 沒有指向哪一個具體的內存單元.
但是 實際上null這個 "指針本身" 是要占據 一個單元(2個字節/或4個字節)的內存空間的, 如同在C 語言中, int *pi=null 一樣, 這個時候, 指針pi是分配了2個字節的內存空間的, 只是這個null沒有指向一個具體的 內存單元 / 內存空間的頭部開始位置.

反正一點: null指針 本身是要占據 2個字節 的 內存 空間的 一個指針..跟 int *pi 中的 pi的作用,意思,地位是一樣的! 只不過就是用null來表示 沒有指向任何地方的指針.

================================================= ========
js jquery中的數組也是一種 很有用 的 數據結構, 要會用:
定義/ 創建數組 的方法有三種:

  1. 常規的: var cars=new Array() cars[0]="aaa" cars[1]="bbb" ....
  2. condensed array 簡潔的/濃縮式的 : var cars=new Array("aaa", "bbb", "ccc"...);
  3. literal array, 從字面上自己去判斷的, ` var cars=["aaa", "bbb", "ccc"...];

json對象的獲取 某個 "屬性值" (在C/c++中, 對象包括屬性+行為 ), 可以使用兩種方式:

var obj={"k1":"v1", "k2":"v2"}, obj.k1=obj["k1"]
在數組中, 屬性名稱 "key"通常要加雙引號, 而屬性值, 該是什么類型就用什么類型的數據形式: "k1": "v1", "k1": 20, 或者 "k1": true....
在引用屬性值的時候, 如果用點 語法, 不需要加 引號, 如果用 數組 語法形式, 則要加引號.


typeof只是一個操作符, 你可以加括號, 也可以不加括號. 加括號, 並不是表示這個是 函數, 它 只是 認為 后面的數據較多而已, 並不是把它當作 函數來處理.. 如同數學表達式 a+b, 也可以寫成 a+(b). 你能夠說+加號就成了一個函數嗎 : 在編程語言中, 所有的操作符都可以接受括號()的, 表示后面的是一個整體 全部, 這是一門語言最基本的東西...

typeof 返回的是 字符串, 字符串是 小寫的 , 而且是固定的那幾個值, 就沒有 jquery中分得那么細: undefined, boolean,string, number(整數和小數), function, object, 而且好像沒有null 類型值, null對象的typeof也是返回的 undefined.

在js和jquery中, dom節點元素, dom節點元素數組, jquery對象都成為 object, 都叫做 "對象" typeof操作返回的都是 object.

再次重申: 不要犯那種低級錯誤了: 把alert 寫成了 alter. 后面的三個字母是 ert, 而不是 ter... 一旦寫錯了, js就會從 出錯的地方終止, 以后的代碼都不會再執行.

enhance單詞, 是hance, 不是hence: enhance[in'h2ns], 提高, 增強, 是hance, 類似於 手的 :hand...

可以產生 充滿 圖片背景的 水平線: hr {background: url('gauze.png'); }

gauze
英[ɡɔːz]  美[gɔz] 
n. 薄紗,紗布;金屬網

gauze:  薄紗,紗布 
The gauze was impregnated with medicament // preg 懷孕的; pregnate: im'pregnate. medicament: 'medik2ment 
這紗布浸透了葯劑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM