新聞中心
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


咨詢
建站咨詢
