日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
講解一下JavaScript基本類型和引用類型的值

JavaScript 是屬于 HTML 和 Web 的編程語(yǔ)言,編程令計(jì)算機(jī)完成您需要它們做的工作,JavaScript 很容易學(xué)習(xí),本篇文章重點(diǎn)為大家講解一下JavaScript基本類型和引用類型的值

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的達(dá)川網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

ES6 引入了一種新的原始數(shù)據(jù)類型 Symbol,表示獨(dú)一無(wú)二的值。它是 JavaScript 語(yǔ)言的第七種數(shù)據(jù)類型,前六種是:Undefined、Null、布爾值(Boolean)、字符串(String)、數(shù)值(Number)、對(duì)象(Object)。

基本類型

JavaScript 中共有 6 種基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number、String、Symbol (new in ES 6) !

約定:基本數(shù)據(jù)類型與原始數(shù)據(jù)類型等意。

基本數(shù)據(jù)類型的值是按值訪問(wèn)的。

基本類型的值是不可變的

var str = "123hello321";
str.toUpperCase();     // 123HELLO321
console.log(str);      // 123hello321

基本類型的比較是它們的值的比較

var a = 1;
var b = true;
console.log(a == b);    // true
console.log(a === b);   // false

上面 a 和 b 的數(shù)據(jù)類型不同,但是也可以進(jìn)行值的比較,這是因?yàn)樵诒容^之前,自動(dòng)進(jìn)行了數(shù)據(jù)類型的 隱式轉(zhuǎn)換。

== : 只進(jìn)行值的比較

=== : 不僅進(jìn)行值得比較,還要進(jìn)行數(shù)據(jù)類型的比較

基本類型的變量是存放在棧內(nèi)存(Stack)里的

var a,b;
a = "zyj";
b = a;
console.log(a);   // zyj
console.log(b);   // zyj
a = "呵呵";       // 改變 a 的值,并不影響 b 的值
console.log(a);   // 呵呵
console.log(b);   // zyj

圖解如下:棧內(nèi)存中包括了變量的標(biāo)識(shí)符和變量的值

引用類型

除過(guò)上面的 6 種基本數(shù)據(jù)類型外,剩下的就是引用類型了,統(tǒng)稱為 Object 類型。細(xì)分的話,有:Object 類型、Array 類型、Date 類型、RegExp 類型、Function 類型 等。

引用類型的值是按引用訪問(wèn)的。

引用類型的值是可變的

var obj = {name:"zyj"};   // 創(chuàng)建一個(gè)對(duì)象
obj.name = "percy";       // 改變 name 屬性的值
obj.age = 21;             // 添加 age 屬性
obj.giveMeAll = function(){
 return this.name + " : " + this.age;
};                        // 添加 giveMeAll 方法
obj.giveMeAll();

引用類型的比較是引用的比較

var obj1 = {};    // 新建一個(gè)空對(duì)象 obj1
var obj2 = {};    // 新建一個(gè)空對(duì)象 obj2
console.log(obj1 == obj2);    // false
console.log(obj1 === obj2);   // false

因?yàn)?obj1 和 obj2 分別引用的是存放在堆內(nèi)存中的2個(gè)不同的對(duì)象,故變量 obj1 和 obj2 的值(引用地址)也是不一樣的!

引用類型的值是保存在堆內(nèi)存(Heap)中的對(duì)象(Object)

與其他編程語(yǔ)言不同,JavaScript 不能直接操作對(duì)象的內(nèi)存空間(堆內(nèi)存)。

var a = {name:"percy"};
var b;
b = a;
a.name = "zyj";
console.log(b.name);    // zyj
b.age = 22;
console.log(a.age);     // 22
var c = {
 name: "zyj",
 age: 22
};

圖解如下:

棧內(nèi)存中保存了變量標(biāo)識(shí)符和指向堆內(nèi)存中該對(duì)象的指針

堆內(nèi)存中保存了對(duì)象的內(nèi)容

檢測(cè)類型

typeof:經(jīng)常用來(lái)檢測(cè)一個(gè)變量是不是最基本的數(shù)據(jù)類型

var a;
typeof a;    // undefined

a = null;
typeof a;    // object

a = true;
typeof a;    // boolean

a = 666;
typeof a;    // number

a = "hello";
typeof a;    // string

a = Symbol();
typeof a;    // symbol

a = function(){}
typeof a;    // function

a = [];
typeof a;    // object
a = {};
typeof a;    // object
a = /aaa/g;
typeof a;    // object

instanceof:用來(lái)判斷某個(gè)構(gòu)造函數(shù)的 prototype 屬性所指向的對(duì)象是否存在于另外一個(gè)要檢測(cè)對(duì)象的原型鏈上 簡(jiǎn)單說(shuō)就是判斷一個(gè)引用類型的變量具體是不是某種類型的對(duì)象

({}) instanceof Object              // true
([]) instanceof Array               // true
(/aa/g) instanceof RegExp           // true
(function(){}) instanceof Function  // true

新聞名稱:講解一下JavaScript基本類型和引用類型的值
文章位置:http://www.dlmjj.cn/article/dpsepjc.html