麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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的過程:① 執行的第一句話就是給n1賦值123,所謂的賦值就是有一個容器,可以放置123這個數字;② 第二句話調用函數    -> 將參數傳入(將變量中的數據拷貝一份)    -> 跳轉到函數體中(將拷貝的數據完成一次賦值,賦值給形參)    -> 執行函數體中的代碼    -> 函數結束回到原來的函數調用的地方    -> 繼續執行后面的代碼
//例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:'感冒'};//有兩個內存區域,一個存儲數據,一個存儲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)。不過相似歸相似,還是有區別的,就是和數字運算時,10 + null結果為:10;10 + undefined結果為:NaN。任何數據類型和undefined運算都是NaN;任何值和null運算,null可看做0運算。    11. BoobleanBoolean類型有兩個字面量:true和false,區分大小寫。(大寫不對)雖然Boolean 類型的字面值只有兩個,但 ECMAScript 中所有類型的值都有與這兩個Boolean 值等價的值true、除0數字、“something”、Object(任何對象)為truefalse、0 、“”、undefined 、null為falseif判斷時會把括號內的值強行轉換成boolean類型。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本高清在线播放 | 1级黄色毛片 | 91一级毛片 | 一区在线视频观看 | 黄色网址进入 | 国产亚洲精品久久午夜玫瑰园 | 欧美老外a级毛片 | 91色综合综合热五月激情 | xnxx18日本| 久久久久一本一区二区青青蜜月 | 成人福利视频网站 | av成人在线免费观看 | 伊人二本二区 | 欧美精品在线视频观看 | 久久精品视频亚洲 | 欧洲伊人网 | 久久久久北条麻妃免费看 | 中文字幕在线观看1 | 国产精品一区在线看 | 激情久久婷婷 | 亚洲免费永久 | 黄色电影免费提供 | 久久久在线 | 国产精品久久久久久久午夜片 | www.成人在线视频 | www.91成人| 国产精品亚洲一区二区三区在线观看 | 爽毛片 | 日本欧美一区二区三区视频麻豆 | 未成年人在线观看 | 久久免费毛片 | gogo全球大胆高清人露出91 | 一级片九九| 欧美精品欧美 | 欧美一级理论 | 久久精品日产高清版的功能介绍 | 午夜网站视频 | 久久第四色 | 7777视频 | 在线观看免费毛片视频 | 中午字幕无线码一区2020 |