新聞中心
JavaScript 是屬于 HTML 和 Web 的編程語言,編程令計算機完成您需要它們做的工作,JavaScript 很容易學習,本篇文章重點為大家講解一下JavaScript基本類型和引用類型的值

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站設計、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的達川網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
ES6 引入了一種新的原始數(shù)據(jù)類型 Symbol,表示獨一無二的值。它是 JavaScript 語言的第七種數(shù)據(jù)類型,前六種是:Undefined、Null、布爾值(Boolean)、字符串(String)、數(shù)值(Number)、對象(Object)。
基本類型
JavaScript 中共有 6 種基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number、String、Symbol (new in ES 6) !
約定:基本數(shù)據(jù)類型與原始數(shù)據(jù)類型等意。
基本數(shù)據(jù)類型的值是按值訪問的。
基本類型的值是不可變的
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ù)類型不同,但是也可以進行值的比較,這是因為在比較之前,自動進行了數(shù)據(jù)類型的 隱式轉(zhuǎ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)存中包括了變量的標識符和變量的值
引用類型
除過上面的 6 種基本數(shù)據(jù)類型外,剩下的就是引用類型了,統(tǒng)稱為 Object 類型。細分的話,有:Object 類型、Array 類型、Date 類型、RegExp 類型、Function 類型 等。
引用類型的值是按引用訪問的。
引用類型的值是可變的
var obj = {name:"zyj"}; // 創(chuàng)建一個對象
obj.name = "percy"; // 改變 name 屬性的值
obj.age = 21; // 添加 age 屬性
obj.giveMeAll = function(){
return this.name + " : " + this.age;
}; // 添加 giveMeAll 方法
obj.giveMeAll();
引用類型的比較是引用的比較
var obj1 = {}; // 新建一個空對象 obj1
var obj2 = {}; // 新建一個空對象 obj2
console.log(obj1 == obj2); // false
console.log(obj1 === obj2); // false
因為 obj1 和 obj2 分別引用的是存放在堆內(nèi)存中的2個不同的對象,故變量 obj1 和 obj2 的值(引用地址)也是不一樣的!
引用類型的值是保存在堆內(nèi)存(Heap)中的對象(Object)
與其他編程語言不同,JavaScript 不能直接操作對象的內(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)存中保存了變量標識符和指向堆內(nèi)存中該對象的指針
堆內(nèi)存中保存了對象的內(nèi)容
檢測類型
typeof:經(jīng)常用來檢測一個變量是不是最基本的數(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:用來判斷某個構(gòu)造函數(shù)的 prototype 屬性所指向的對象是否存在于另外一個要檢測對象的原型鏈上 簡單說就是判斷一個引用類型的變量具體是不是某種類型的對象
({}) instanceof Object // true
([]) instanceof Array // true
(/aa/g) instanceof RegExp // true
(function(){}) instanceof Function // true
網(wǎng)頁名稱:講解一下JavaScript基本類型和引用類型的值
地址分享:http://fisionsoft.com.cn/article/dpsepjc.html


咨詢
建站咨詢
