国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript 數據類型(值類型/引用類型)

2019-11-06 07:27:43
字體:
來源:轉載
供稿:網友

1. 簡單數據類型(值類型)String  Number  Boolean  undefined null數據存儲在中2. 復雜數據類型(引用類型)Object  function  Array  Date  RegExp  Error ...先在棧空間中開辟一塊內存,將數據保存到堆空間中,然后將數據在棧空間中的存儲地址放到棧空間中3.值類型 和 引用類型(1)js類型:-> 簡單類型:字符串 string,數字 number,布爾 boolean-> 復雜類型(復合類型):由簡單類型組合而來 -- 對象 object,函數 function-> 空類型:null,undefined(2)特點:-> 簡單類型的特點就是變量本身存儲的就是值本身-> 復雜類型的特點就是變量不存儲數據,數據由于非常的龐大,存儲在單獨的內存中,變量只存地址(引用)值類型好比文件,文件拷貝一份,其內容也會被拷貝一份;引用類型就好比快捷方式,數據存儲在文件夾的各文件中,快捷方式拷貝一份,數據并沒有被拷貝,兩個快捷方式指向的是同一份數據。由此可以解釋以下二者的關系:new Person().__PRoto__Person.prototype從不同的角度找到同一個對象,從實例和構造函數都能找到原型。(3)函數參數傳遞時值類型與引用類型的特征:例1的過程:① 執(zhí)行的第一句話就是給n1賦值123,所謂的賦值就是有一個容器,可以放置123這個數字;② 第二句話調用函數    -> 將參數傳入(將變量中的數據拷貝一份)    -> 跳轉到函數體中(將拷貝的數據完成一次賦值,賦值給形參)    -> 執(zhí)行函數體中的代碼    -> 函數結束回到原來的函數調用的地方    -> 繼續(xù)執(zhí)行后面的代碼
//例1:值類型作為參數function foo(num){//這里的num在進來的時候就是123    num *= 2;//246}var n1 = 123;foo(n1); //傳參數時會將n1拷貝一份,即內存中有兩個123,將拷貝的123傳入到函數中賦值console.log(n1);//123結論1: 值類型在參數傳遞中,函數內與函數外是兩個不同的變量,只是數據值相同而已,修改其中一個,另一個不影響
//例2:引用類型作為參數function seeDoctor(per){//進入函數體前,拿到傳入的數據,即地址    per.health = '健康';}var p = {    name:'jim',    health:'感冒'};//有兩個內存區(qū)域,一個存儲數據,一個存儲p(即地址)seeDoctor(p);//傳遞參數時p會被拷貝一份,拷貝的是地址,數據沒有被拷貝console.log(p.health);//健康//使用p找內存中的數據//得到的就是'健康'結論2: 引用類型在參數傳遞中,函數內與函數外是兩個不同的變量,但是指向同一個對象,因此使用函數內的變量,去修改對象的數據,函數結束后,修改的結果會保留下來
//例3:特例function seeDoctor(per){    per = {        name:'tom',        health:'健康'    };}var p = {    name:'tom',    health:'感冒'};seeDoctor(p);console.log(p.health);//感冒結論3:引用類型如果直接賦值,就和值類型一樣4. 字面量固定的值,讓你從“字面上”理解其含義。var age=18; // 數值字面量,18為字面值5. 因為精度丟失問題,所以不判斷計算后的兩個浮點數是否相等    6. 數值范圍

由于內存的限制,ECMAScript 并不能保存世界上所有的數值

最小值:Number.MIN_VALUE,這個值為: 5e-324

最大值:Number.MAX_VALUE,這個值為: 1.7976931348623157e+308

無窮大:Infinity

無窮小:-Infinity

7. NaN

a) NaN 非數值(Not a Number的簡寫)

console.log(“abc”/18);  //結果是NaN

Undefined和任何數值計算為NaN;

NaN 與任何值都不相等,包括 NaN 本身

b) isNaN() :任何不能被轉換為數值的值都會導致這個函數返回 true

(isNaN譯為是否符合一個標準,什么標準呢?不是一個數字的標準,如果符合了那么就不是一個數字,不符合就是一個數字)

isNaN(NaN);// true

isNaN(“blue”); // true

isNaN(123); // false

8. 轉義符://t:制表符,四個空格/n:換行9. 字符串的不可變性在內存中不會立刻消失,只能二次賦值,原有的字符在一定時間內被垃圾回收器回收。   10. undefined 和 nullnull和undefined有最大的相似性。看看null == undefined的結果(true)也就更加能說明這點。但是null ===undefined的結果(false)。不過相似歸相似,還是有區(qū)別的,就是和數字運算時,10 + null結果為:10;10 + undefined結果為:NaN。任何數據類型和undefined運算都是NaN;任何值和null運算,null可看做0運算。    11. BoobleanBoolean類型有兩個字面量:true和false,區(qū)分大小寫。(大寫不對)雖然Boolean 類型的字面值只有兩個,但 ECMAScript 中所有類型的值都有與這兩個Boolean 值等價的值true、除0數字、“something”、Object(任何對象)為truefalse、0 、“”、undefined 、null為falseif判斷時會把括號內的值強行轉換成boolean類型。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉黎县| 鄂温| 松阳县| 登封市| 论坛| 丘北县| 得荣县| 岳阳市| 习水县| 富蕴县| 车险| 改则县| 临高县| 旬邑县| 靖西县| 卫辉市| 常德市| 莎车县| 黔西| 三穗县| 西平县| 邳州市| 白银市| 仁怀市| 双柏县| 秀山| 江北区| 彭阳县| 澎湖县| 古浪县| 沈丘县| 奈曼旗| 德令哈市| 墨玉县| 禄丰县| 建平县| 子长县| 泾源县| 安仁县| 中方县| 库尔勒市|