js基礎手寫Demo知識點總結

2021-09-29 18:40:51 字數 1673 閱讀 8891

/*

* 知識點1: 變數宣告提公升,但是賦值不不會提公升

*/var a = 1;

if(true)

console.log(a); //2

console.log(b); // 3

b = 4;

/** 知識點2: 同一識別符號的前提下, 宣告都會提公升,且函式宣告會覆蓋變數宣告。 但是初始化或賦值時,變數優先順序高於函式。

*/console.log(a) // a(){}

var a = 1;

function a(){};

console.log(a) // 1

/** 知識點3: 函式的實參可以通過arguments對應索引來改變值, 函式外變數於函式形參同名時,不會影響形參內的賦值及原始值

*/var a = 1;

function fun(a, b)

console.log(fun(0, 0)); // 4

console.log(a) // 1

/*知識點4: for 迴圈為同步任務,settimeout 為非同步任務。主任務知曉完成後才會將非同步任務佇列推入執行;

for 迴圈完成後i 值為5, 所以最後的console.log 輸出5

*/for(var i=0; i<5; i++) , 0)

}console.log(i) //5

/*知識點5: 普通函式的繼承及例項化為先例項化子類建構函式,後例項父類建構函式;

函式內及原型上的變數,只能在例項化後可訪問,直接通過方法訪問報 error

(先查詢自己 建構函式,然後查詢繼承物件的建構函式,然後查詢繼承物件的原型鏈.... 如果找到則停止後續查詢)

*/function a() ;

a.prototype.num2 = 2;

function b();

b.prototype = new a();

var b1 = new b();

console.log(b1.num1); // 3

console.log(b1.num2); // 2

var b2 = b();

console.log(b2.num1); // error

console.log(b2.num2); // error

/** 根據陣列目錄樹集合,輸出樹物件

*/var data=[,,

,,,];

var parentids = new set(data.map(item=>item.id)) ; // 自己寫乙個獲取id集合的去重函式。 [0,1,2,3,4]

function createtreelist (arry, newarry, parentid)

});if(!newarry.length) else

if(item.id == parentid) })}

if(parentids.length==0)

createtreelist(arry, newarry, parentids.splice(0,1)[0])

return newarry;

}var newarray = createtreelist(data, , parentids.splice(0,1)[0]);

console.log('newtree:',newarray)

JS 基礎知識點總結

1.1外部應用 js檔案只要書寫 js 即可 不需要使用包裹 最好寫在html 的後面 1.3行內樣式 在html元素標籤中寫入例 2.1檢視變數型別使用 typeof 例 alert typeof a 資料返回值 宣告未賦值 undefind boolean true false number 整...

JS正則知識點總結

正則的常用方法 正規表示式中有很多符號,代表著不同的意思,用來讓我們去定義不同的規則,比如上面 d,還有下面的這些 s 空格 s 非空格 d 數字 d 非數字 w 字元 字母 數字,下劃線 w 非字元例子 是否有不是數字的字元 1 test 在字串中查詢符合正則的內容,若查詢到返回true,反之返回...

JS基礎知識點

1.js基本資料型別 number 數字型別 string 字串 boolean 布林型別 ture false 非0即為真 null 空值 有值,值為空 undefined 未定義的 沒有值 object 物件型別 array 陣列 js語言特點 1.解釋性執行,指令碼語言 2.物件導向 一切事物...