(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. NaNa) 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類型。
新聞熱點
疑難解答