(1)基本資料型別:
undefined、null、number、string、boolean、symbol(es6新增,表示獨一無二的值,常用來定義物件的唯一屬性名)
number包括整數、浮點數和nan,nan(非數值):用於表示乙個本來要返回值但是未返回值的情況;
undefined和null區別:undefined是宣告了變數但未初始化,null表示乙個空物件指標,如果該變數將來用於儲存物件,就可以設定它為null。
(2)引用資料型別:
只有一種,即object,我們所說的array和function其實底層原型鏈都是繼承的object。
驗證方法如下,所有的列印結果都為true:
let o = new object();
console.log(o.__proto__==object.prototype); //true
let a =;
console.log(a.__proto__.__proto__==object.prototype); //true
let fn =function()
console.log(fn.prototype.__proto__==object.prototype); //true
console.log(function.prototype.__proto__==object.prototype); //true
(3)typeof 檢測給定變數的資料型別:
let n = null;
console.log(typeof n) //object
let o = new object;
console.log(typeof o) //object
let a = ;
console.log(typeof a) //object
console.log(typeof 1/0); //nan
let c = typeof 12;
console.log(typeof(c)) //string
nan==nan //false
object.is(nan, nan) //true
undefined==null //true
0==true //false
1==true //true
2==true //false
object.is(+0, -0); //false
+0 === -0; //true
(4)獲取js資料具體資料型別(重點!!!)
let arr = [1,2,3,4];
//用這個方法來獲取資料的具體型別
console.log(object.prototype.tostring.call(arr))//[object array]
//用這個只能獲取object,無法具體的資料型別
console.log(typeof arr) // object
(5)==、===和object.is()的區別
(6)parseint(string,radix):
string:要被解析的字串;
radix:可選。表示要解析的數字的基數。該值介於 2 ~ 36 之間。如果省略該引數或其值為 0,則數字將以 10 為基礎來解析。如果它以 「0x」 或 「0x」 開頭,將以 16 為基數如果該引數小於 2 或者大於 36,則 parseint() 將返回 nan。
console.log(parseint(3, 8)); //3
console.log(parseint(3, 2)); //nan
console.log(parseint(2, 1)); //nan
console.log(parseint(3, 0)); //3
console.log(parseint(1, 0)); //1
console.log(parseint(8, 0)); //8
經典題:console.log(["1","2","3"].map(parseint))列印什麼?
相當於問parseint(1,0)、parseint(2,1)、parseint(3,2)列印什麼,所以答案為[1, nan, nan]
foreach、some、map、filter:
將乙個陣列賦給另外乙個陣列,有兩種方式,分別為淺複製和深複製。
深複製:而深複製則是開闢新的棧,兩個物件對應兩個不同的位址,修改乙個物件的屬性,不會改變另乙個物件的屬性
js深複製淺複製
深淺複製主要是針對於js的引用資料型別的,因為他們不只一層,並且修改乙個變數是不希望修改到另外乙個變數。淺複製 只複製指向某個物件的指標,新舊物件共享一塊記憶體,修改新物件會改到原物件上。深複製 不共享記憶體,修改新物件不會改到原物件上。淺複製實現 js 簡單的賦值操作一般實現的都是淺複製。深複製實...
淺複製和深複製
在c 中,下面三種物件需要呼叫拷貝建構函式 有時也稱 複製建構函式 1 乙個物件作為函式引數,以值傳遞的方式傳入函式體 全域性函式,傳入的是物件 void g fun resume c 2 乙個物件作為函式返回值,以值傳遞的方式從函式返回 全域性函式 返回的是物件 resume g fun 3 乙個...
深複製和淺複製
以下 是否完全正確,執行可能得到的結果是 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class a class b b void sayhello b b int main 程式正常執行 程式編譯錯誤 程式崩潰 程式死迴圈 這個程式會直接崩潰 voidsayhello ...