原创 解決遞歸調用棧溢出--尾遞歸優化

遞歸函數的優點是定義簡單,邏輯清晰。理論上,所有的遞歸函數都可以寫成循環的方式,但循環的邏輯不如遞歸清晰。  計算階乘n! = 1 x 2 x 3 x ... x n,用函數fact(n)可以表示爲n x fact(n-1),只有n=1時

原创 [] == ![]

== 操作符 toPrimitive 是對象轉基本類型。  [] == ![] // -> true ,下面是這個表達式爲何爲 true 的步驟:   // [] 轉成 true,然後取反變成 false [] == false /

原创 angular組件通信,數據請求,路由

一.父子組件及組件之間的通信 父組件給子組件傳值 -@input(可以傳遞數據,方法以及整個父組件(傳遞this  [home]=’this’)) 父組件調用子組件的時候傳入數據   <app-xx [msg] = ‘msg’></ap

原创 JSt數組詳解

靜態成員 from:將僞數組轉換爲真數組 let args = Array.from(arguments); isArray 判斷給定的數據是不是真數組(真數組:通過Array構造器構造的數組) of Array.of

原创 Angular 8.x使用ViewChild報錯

錯誤: error TS2554: Expected 2 arguments, but got 1. 應有 2 個參數,但獲得 1 個。ts(2554) core.d.ts(7888, 47): An argument for 'opts

原创 Number([])與Number({})

Number()函數轉換規則如下: 轉換規則: 1)如果是Boolean值,true和false將分別轉換爲1和0。 2)如果是數字值,只是簡單的傳入和返回。 3)如果是null值,返回0。 4)如果是undefined,返回NaN。 5

原创 Angular中錨點的寫法

普通頁面中的寫法 <a href="#id">跳轉</a> <div id="id">指定位置</div> 此方法在angular中是失效的,因爲此寫法跟路由衝突 解決方案一:(不推薦) //html: <a (click)="goD

原创 Uncaught reflect-metadata shim is required when using class decorators

當運行Angular項目時出現如下錯誤(Uncaught reflect-metadata shim is required when using class decorators): 需要安裝:npm install reflect-m

原创 JavaScript數組方法大全(包含ES6)

JavaScript中創建數組有兩種方式 (一)使用 Array 構造函數:   var arr1 = new Array(); //創建一個空數組 var arr2 = new Array(20); // 創建一個包含20項的數組 v

原创 js中區分slice,splice和split方法

1.slice(數組) 用法:array.slice(start,end) 解釋:該方法是對數組進行部分截取,並返回一個數組副本;參數start是截取的開始數組索引,end參數等於你要取的最後一個字符的位置值加上1(可選) //如果不

原创 javascript交換兩個數

(1)  臨時變量 let a = 12,b = 5; let temp = a; a = b; b = temp; (2)數值相加減交換 let a = 12,b = 5; a = a + b;             

原创 win10系統關機時提示(程序沒有響應)需要結束程序

win10電腦關機時總是提示如下: 解決方法如下: 1、按下WIN+R,然後輸入gpedit.msc 回車   2、展開計算機配置-管理模板-系統-關機選項; 3、將把"關閉會阻止或取消關機的應用程序的自動終止功能“設置爲:已禁止

原创 ES2020新特性

1.通過 # 給 class 添加私有變量 class Counter { #number = 10 increment() { this.#number++ } getNum() { return th

原创 stackblitz復現工具的使用

stackblitz是一個可以在線編輯並查看angular項目的工具。目前只支持angular-cli腳手架項目 使用: 1.在github上打開你的項目: 2.將github.com改爲stackblitz.com/github  改爲

原创 Javascript如何判斷一個值是不是NaN

問題由來:如何判斷一個函數的返回值是不是NaN? NaN==NaN; //false Number.isNaN(NaN); //treu Object.is(NaN,NaN); //t