基本資料型別:按值訪問,可操作儲存在變數中的實際的值。基本型別值指的是簡單的資料段。
基本資料型別有這五種:undefined、null、string、number、boolean。
引用型別:
當複製儲存著物件的某個變數時,操作的是物件的引用,但在為物件新增屬性時,操作的是實際的物件。
引用型別值指那些可能為多個值構成的物件。
引用型別有這幾種:object、array、regexp、date、function、特殊的基本包裝型別(string、number、boolean)以及單體內建物件(global、math)。
對於基本型別值和引用型別值的區別:
① 引用型別值可新增屬性和方法,而基本型別值則不可以。
//② 在複製變數值時,基本型別會在變數物件上建立乙個新值,再複製給新變數。此後,兩個變數的任何操作都不會影響到對方;而引用型別是將儲存在變數物件的值複製乙份給新變數,但是兩個變數的值都指向儲存在堆中的乙個物件,也就是說,其實他們引用了同乙個物件,改變其中乙個變數就會影響到另乙個變數。為引用型別值新增屬性
var p = new
object();
p.age=11;
alert(p.age);
//11
//為基本型別值新增屬性
var name = 'a';
name.age = 11;
alert(name.age);
//undefined
//引用型別值,以陣列為例:基本型別值
var a = 'a';
var b =a;
a = 'b';
alert(b);
//a
//傳遞引數:按值傳遞,將函式外部的值複製給函式內部的引數(乙個區域性變數),當對區域性變數進行操作時,區域性變數的變化會反應在函式外部,但是這並不會影響函式外部的值。引用型別值,以陣列為例
//1.對其中乙個變數直接賦值不會影響到另乙個變數(並未操作引用的物件)
var a = [1,2,3];
var b =a;
a = [1,2,3,4];
alert(a);
//1,2,3,4
alert(b); //
1,2,3
//2.使用push(操作了引用的物件)
var a = [1,2,3];
var b =a;
a.push(4);
alert(a);
//1,2,3,4
alert(b); //
1,2,3,4
function當然,使用物件時可能會不好理解:add(a)
var num = 10;
var result =add(num);
alert(num);
//10
alert(result); //
20
function明明引數是按值傳遞的,為什麼建立的p例項也能獲取到在setname()中新增的name屬性呢?setname(obj)
var p = new
object();
setname(p);
alert(p.name);
//a
因為obj和p引用的是同乙個物件,即便按值傳遞,obj也會按引用來訪問同乙個物件。看一下下面的例子就能清楚了。
function在函式內部重寫obj物件,此時obj物件引用的是乙個區域性物件,外部的p還是原始的引用,因此不會改變。setname(obj)
var p = new
object();
var p2 =setname(p);
alert(p.name); //a
alert(p2.name); //
b
檢測型別:
typeof:確定變數是字串、數值、布林值還是undefined的最佳工具。
var num = 1;instanceof :判斷是否是某個物件型別。var a = 'a';
varb;
var flag = true
;var o = null
;alert(
typeof num); //
number
alert(typeof a); //
string
alert(typeof b); //
undefined
alert(typeof flag); //
boolean
alert(typeof o); //
object
var a = [1,2,3];alert(a
instanceof object); //
true
alert(a instanceof array); //
true
alert(a instanceof regexp); //
false
JavaScript資料的基本型別
基本型別 undefined null number string boolean undefined和null型別是只有乙個值的資料型別,分別是undefined null 在使用var宣告變數但未對其加以初始化時,這個變數的值是undefined var message var name con...
重新鞏固JS(一) JavaScript基本型別
重新鞏固js系列,都是比較基礎的東西,可以進行查漏補缺,很快看完,這是第一篇。其他js重新鞏固系列 在程式設計領域中,資料型別 data type 用來將變數的值 value 進行分類,這樣在對變數的值進行數學 關係 邏輯等運算時就不會產生錯誤了。例如 2 2是合法的,2 john就不合法了。js中...
lua中的基本型別
lua是乙個動態型別的語言,沒有型別定義,每個值都有自己的型別。lua有8個基本型別,nil,boolean,number,string,userdata,function,thread,table,利用type函式可以列印出乙個給定值的型別。注意最後一行,無論x為什麼值,結果一定是string,因...