number,string,boolean,undefined,null,object
1.基本型別/簡單型別/值型別
number,string,boolean
2.引用型別
object
3.空型別
undefined,null
var定義的變數,沒有塊的概念,可以跨塊訪問, 不能跨函式訪問。
let定義的變數,只能在塊作用域裡訪問,不能跨塊訪問,也不能跨函式訪問。
const用來定義常量,使用時必須初始化(即必須賦值),只能在塊作用域裡訪問,而且不能修改。
值型別: 棧
引用型別 :堆(引用變數在棧)
值型別 :賦值就是拷貝
引用型別:賦值就是傳址
var num = 10; 這是乙個基本資料型別number,如果他呼叫了屬性如:num.tostring();則會轉換成包裝型別
注意: 如下**
var flag =
newboolean
(false);
var f = flag&&
true
;console.
log(f)
//結果為true
原因:任何物件&&true結果都是true
var flag =
newboolean
(false);
var f =
true
&&flag;
// 如果反過來
console.
log(f)
//結果是boolean 物件
var n = number("10");
//這個是基本型別,把str轉num
解釋型語言 :不預編譯
基於物件的語言 :但不是物件導向的語言,也就是說他沒有繼承、多型的特性,但可以進行模擬,來實現物件導向
指令碼語言 :script
動態語言 :**(變數)只有執行到這個位置的時候,才知道這個變數中到底儲存的是什麼。沒有什麼「 . 」什麼,那麼就可以為物件新增屬性或者方法。
弱型別語言 :var
呼叫系統的建構函式建立物件
var obj =
newobject()
;obj.name =
"wang"
;obj.f1=
function()
;obj.f1(
);//呼叫
工廠函式模式建立物件
function
persion
(na)
;//注意:返回物件
return oo;
}persion
("wang").
f1();
自定義建構函式建立物件
//注意:建構函式名稱大寫
function
person()
}var person =
newperson()
;person.f1(
);//改值
person.name =
"aaa"
;//或
person[
"name"]=
"aaa"
;//呼叫方法
person[
"f1"](
);
字面量的方式建立物件
//注意賦值的方式是分號
//缺點:無法改值,一次性的物件。
var obj =};
//呼叫
obj.f1(
);
new person(); 執行這條語句進行了如下操作:
4. 申請記憶體空間
5. 將this設定為當前物件
6. 設定物件的屬性和方法,如果有的話
7. 返回本物件(this)
以鍵值對的形式進行儲存
var json =
;//獲取屬性的值
console.
log(json.name)
;//注意,使用.的方式要保證這個屬性名存在,否則會建立新的屬性
console.
log(json[
"name"])
;//迭代json物件中所有屬性的值
for(
var key in json)
JS中的資料型別
js中的資料型別分為兩種 基本資料型別和引用資料型別 基本資料型別 number boolean string undefined null symbol es6中新增 引用資料型別 object array function date regexp 等 講區別之前,需要先了解堆 heap 和棧 s...
js中的資料型別
1.基本資料型別和複雜資料型別 雖然typeof null返回的值是object,但是null不是物件,而是基本資料型別的一種。這是乙個歷史遺留問題,js 的最初版本中使用的是 32 位系統,為了效能考慮使用低位儲存變數的型別資訊,000開頭代表是物件,null表示為全零,所以將它錯誤的判斷為obj...
js中的資料型別
js中的資料型別可以分為基本型別和引用型別 基本型別包括了 number string boolen undefined null symbol 引用型別包括了object 又可以具體的分為 object array date regexp function 關於資料型別的檢測 1.typeof 方...