自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (5)
  • 收藏
  • 关注

原创 空值合并运算符 (??逻辑运算符)

空值合并运算符(??)是一个逻辑运算符。当左侧操作数为 null 或 undefined 时,其返回右侧的操作数。否则返回左侧的操作数。const foo = null ?? 'default string';console.log(foo); // 输出:"default string"const baz = 0 ?? 42;console.log(baz); // 输出:0TS 代码经过编译后,会生成以下 ES5 代码:"use strict";var _a, _b;var.

2020-07-13 11:47:44 2725

原创 解决递归调用栈溢出--尾递归优化

递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)可以表示为n x fact(n-1),只有n=1时需要特殊处理。于是,fact(n)用递归的方式是:def fact(n): if n==1: return 1 return n * fact(n - 1)如果我们计算5的阶乘,可以看到计算过程如下:使用递归函数需要注.

2020-07-03 16:04:59 2974

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

当运行Angular项目时出现如下错误(Uncaught reflect-metadata shim is required when using class decorators):需要安装:npm install reflect-metadata zone.js然后在main.ts中最开始导入:import 'zone.js';import 'reflect-metadata'...

2020-03-31 14:34:10 406

原创 win10系统关机时提示(程序没有响应)需要结束程序

win10电脑关机时总是提示如下:解决方法如下:1、按下WIN+R,然后输入gpedit.msc 回车2、展开计算机配置-管理模板-系统-关机选项;3、将把"关闭会阻止或取消关机的应用程序的自动终止功能“设置为:已禁止一次点击如图所示内容...

2020-03-05 10:42:33 11982 5

原创 ES2020新特性

1.通过 #给 class 添加私有变量class Counter { #number = 10 increment() { this.#number++ } getNum() { return this.#number }}const counter = new Counter()counter.increment()console.log(c...

2020-01-17 10:23:47 8077

原创 Javascript如何判断一个值是不是NaN

问题由来:如何判断一个函数的返回值是不是NaN?NaN==NaN; //falseNumber.isNaN(NaN); //treuObject.is(NaN,NaN); //true Object.is()方法用来判断两个值是否是相同的值。用法Object.is(val1, val2);Object.is...

2020-01-10 16:12:45 3083

原创 stackblitz复现工具的使用

stackblitz是一个可以在线编辑并查看angular项目的工具。目前只支持angular-cli脚手架项目使用:1.在github上打开你的项目:2.将github.com改为stackblitz.com/github改为使用非常方便,遗憾的是目前只支持angular-cli脚手架项目...

2019-12-20 15:02:14 2258

原创 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' was not provided.原因:ViewChild需要两个参数,并没有提供opts官网解释:static- whether o...

2019-12-19 11:20:39 2791

原创 Angular中锚点的写法

普通页面中的写法<a href="#id">跳转</a><div id="id">指定位置</div>此方法在angular中是失效的,因为此写法跟路由冲突解决方案一:(不推荐)//html:<a (click)="goDetail('id')">跳转</a><div id="id">指定...

2019-12-13 15:49:28 1445

原创 数组去重后长度大于10,求出现频率最高的10个元素

js解决方法如下: function findTopTen(arr1) { let obj = {}, len1 = arr1.length; for (let i = 0; i < len1; i++) { obj[arr1[i]] == undefined ? obj[arr1[i]] = 1 :...

2019-12-12 14:55:59 568

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

Number()函数转换规则如下:转换规则:1)如果是Boolean值,true和false将分别转换为1和0。2)如果是数字值,只是简单的传入和返回。3)如果是null值,返回0。4)如果是undefined,返回NaN。5)如果是字符串,遵循下列规则:如果是字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即“1”变成1,“123”会变成123...

2019-12-03 17:11:36 2095 1

原创 angular组件通信,数据请求,路由

一.父子组件及组件之间的通信父组件给子组件传值 -@input(可以传递数据,方法以及整个父组件(传递this [home]=’this’))父组件调用子组件的时候传入数据 <app-xx [msg] = ‘msg’></app-xx> 子组件引入Input模块 import {Input} from ‘@angular/core’ 子组件中@...

2019-12-02 18:06:43 855

转载 Git使用详解

一、Git工作流程以上包括一些简单而常用的命令,但是先不关心这些,先来了解下面这4个专有名词。Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库工作区程序员进行开发改动的地方,是你当前看到的,也是最新的。平常我们开发就是拷贝远程仓库中的一个分支,基于该分支进行开发。在开发过...

2019-09-18 17:14:43 434

原创 循环中使用闭包解决 var 定义函数的问题

//本文首发于掘金社区,链接:https://juejin.im/post/5d7461c6e51d453bc470df4f经典面试题,循环中使用闭包解决 var 定义函数的问题for ( var i=1; i<=5; i++) {setTimeout( function timer() {console.log( i );}, i*1000 );}复制代码...

2019-09-08 10:11:12 898

原创 [] == ![]

== 操作符toPrimitive 是对象转基本类型。[] == ![] // -> true ,下面是这个表达式为何为 true 的步骤:// [] 转成 true,然后取反变成 false [] == false // 根据第 8 条得出 [] == ToNumber(false) [] == 0 // 根据第 10 条得出 ToPrimi...

2019-09-05 22:23:02 159

原创 HTTP状态码

//本文首发于掘金社区:https://juejin.im/post/5d70f594e51d4561b072dd74状态码的职责是当客户端向服务端发送请求时,描述返回的请求的结果,借助状态码,用户可以知道服务端是正常处理了请求,还是出现了错误.状态码类别:2xx成功2xx的响应结果表明杯正常处理200 ok:表示从客户端发来的请求在服务器端被正常处理了204 no ...

2019-09-05 20:34:31 553

原创 前端面试总结(面向校招)

一.Vue相关1.vue中的MVVM模式(优点?)即Model-View-ViewModelModel代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。View代表UI组件,它负责将数据模型转化成UI展现出来。ViewModel监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步View和Model的对象,连接Model和View。Vue是以数...

2019-08-25 16:51:20 1090

原创 javascript数组详解

静态成员from:将伪数组转换为真数组let args = Array.from(arguments);isArray 判断给定的数据是不是真数组(真数组:通过Array构造器构造的数组)of Array.of()与new Array()的区别,如果只有一个参数n,前者表示数组只有一位,值为n;后者表示创建一个长度为n的空数组实例成员会改变原数组fill 填充数...

2019-08-04 16:20:36 171

原创 javascript运算符和表达式

运算符表达式表达式 = 操作符 + 操作数 每个表达式都有一个运算结果,该结果叫做返回值,返回值的类型叫做返回类型所有的表达式可以当作数据使用=:该表达式返回赋值的结果 .:返回属性的值(同()) console.log函数调用返回的结果为undefinedchrome浏览器控制台的环境是REPL环境(读 -- 执行 -- 打印 -- 循环) 除了输出表达式的值外,还会输...

2019-08-02 11:08:17 191

原创 window.name属性

题目:var name;console.log(name);console.log(typeof name);按照正常思路来说,只是声明了name变量并未赋值,所以按常理来说应该输出:undefined"undefined"但是运行结果为究其原因,是因为window存在一个叫name的属性此属性为空,实际上,开发者定义的所有变量,都会成为window...

2019-08-01 20:34:17 3056

原创 深入css权重计算

- 1.千位:如果是内联样式,记为1,否则为0- 2.百位:等于选择器中所有id选择器的数量- 3.十位:等于选择器中所有类选择器,属性选择器,伪类选择器的数量- 4.个位:等于选择器中所有元素(标签)选择器,伪元素选择器的数量- 5.通配符选择器为0 也就是说权重计算可以初始为0000,按照上述规则,每存在一个选择器便在该位上加一,但是进制是256进制,也就是说,10个低一级的...

2019-07-31 11:22:34 193

原创 剑指offer(js版)

1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。function Find(target, array){ // write code here for(let i = 0; i < array.length;i++)...

2019-07-26 09:46:45 2079 1

转载 webpack的面试题总结

本文转自于前端面试总结@知乎专栏:https://zhuanlan.zhihu.com/p/44438844随着现代前端开发的复杂度和规模越来越庞大,已经不能抛开工程化来独立开发了,如react的jsx代码必须编译后才能在浏览器中使用;又如sass和less的代码浏览器也是不支持的。 而如果摒弃了这些开发框架,那么开发的效率将大幅下降。在众多前端工程化工具中,webpack脱颖而出成为了当今最...

2019-07-25 20:53:51 20841 1

原创 前端面试问题(持续整理中。。。)

百度校招一面ajax流程讲一下 了解promise吗,简单说一下 手写一个箭头函数如何使用 实现一个链式调用 写个简单的观察者模式 数组去重 let和const有什么区别 如何判断数据类型,如果遇到null呢 写一个正则,要求匹配电话号区号+座机号,并且给区号添加上括号 mvc,mvp和mvvm的区别 笔试题topK用什么排序?(答了堆排序)堆排序时间复杂度,稳定性以及什么...

2019-07-25 11:41:23 259

原创 var a = {n: 1}; var b = a; a.x = a = {n: 2}; console.log(a.x) console.log(b.x)

var a = {n: 1};var b = a;a.x = a = {n: 2};console.log(a.x) //undefined console.log(b.x) //{n == 2}解释:var b = a; 对象存贮在堆内存,a和b同时引用 {n:2}赋值操作为从左到右操作,但是 . 的优先级要高于 =所以先执行a.x,此时a和b的共同索引为{...

2019-07-23 14:43:16 2057

转载 Set、Map、WeakSet 和 WeakMap 的区别

Set 和 Map 主要的应用场景在于数据重组和数据储存Set 是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构1. 集合(Set)ES6 新增的一种新的数据结构,类似于数组,但成员是唯一且无序的,没有重复的值。Set 本身是一种构造函数,用来生成 Set 数据结构。new Set([iterable])举个例子:const s = new Set(...

2019-07-17 15:06:25 4569 1

原创 什么是防抖和节流?有什么区别?如何实现?

一部分的用户行为会频繁的触发事件执行,而对于DOM操作,资源加载等耗费性能的处理,很有可能导致界面卡顿,甚至浏览器的崩溃,防抖和节流就是解决这种问题的防抖触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间防抖就是在函数需要频繁触发情况时,只有足够空闲的时间,才执行一次(公交司机等人上齐后才出站)思路: 每次触发事件时都取消之前的延时调用方法f...

2019-07-17 11:00:18 2657

转载 每日一题(web前端)

第 1 题:写 React / Vue 项目时为什么要在列表组件中写 key,其作用是什么?key是给每一个vnode的唯一id,可以依靠key,更准确, 更快的拿到oldVnode中对应的vnode节点。1. 更准确因为带key就不是就地复用了(不带有key,并且使用简单的模板,基于这个前提下,可以更有效的复用节点,diff速度来看也是不带key更加快速的,因为带key在增删节点上...

2019-07-17 09:08:26 1441

转载 Js中的Map对象

map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。var new_array = arr.map(function callback(currentValue[, index[, array]]) { // Return element for new_array }[, thisArg])callback生成新数组元素的函数,使用三个参...

2019-07-17 09:07:45 1050

原创 css属性值的计算过程

##属性值的计算过程一个一个元素依次渲染,顺序按照页面文档的树形目录结构进行(深度优先渲染)渲染每个元素的前提条件:该元素的所有css属性必须有值一个元素从所有属性都没有值,到所有属性都有值,这个过程叫做属性的计算过程1.确定声明值(参考样式表中没有冲突的声明,作为css属性值)2.层叠冲突(对样式表有冲突的声明使用层叠规则,确定css值)3.使用继承(对仍然没...

2019-07-10 20:04:43 609

转载 JavaScript正则表达式详解

第一章 正则表达式字符匹配攻略 第二章正则表达式位置匹配攻略 第三章 正则表达式括号的作用 第四章 正则表达式回溯法原理 第五章 正则表达式的拆分 第六章 正则表达式的构建 第七章 正则表达式编程 后记下面简单地说说每一章都讨论了什么?正则是匹配模式,要么匹配字符,要么匹配位置。第1章和第2章以这个角度去讲解了正则的基础。在正则中可以使用括号捕获数据,要么在API中进...

2019-06-13 18:49:46 8363 6

转载 Javascript异步编程的4种方法

作者:阮一峰你可能知道,Javascript语言的执行环境是"单线程"(single thread)。所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往...

2019-06-02 16:21:27 133

原创 javascript经典面试题整理

一.类型转换var a = false + 1;console.log(a); //1var b = false == 1;console.log(b);//falseif(typeof(a) && (-true) + (+undefined) + ''){console.log('通过了');}// typeof(a) --> 'u...

2019-06-02 11:17:46 956

原创 web前端企业JavaScript常见面试题

1.函数声明和函数表达式的区别show1();//show1function show1(){ //函数声明console.log("show1");}show1();//show1console.log(show2);//undefinedvar show2 = function(){ //函数表达式console.log("show2");}show...

2019-05-18 11:35:55 1157

原创 什么是跨域,如何解决跨域问题?

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。同源:域名,协议,端口均相同不同源:协议不同(http/https),域名不同,域名的前缀不同,端口不同,域名和域名对应ip也属于跨域,请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。1、后端配置cors:本人对后端领域尚未涉足,推荐博客...

2019-05-18 10:15:31 511

原创 css3兼容各版本浏览器前缀

前缀         浏览器-webkit-       chrome、safari-moz-        firefox-ms- IE-o- opera...

2019-04-16 20:38:39 961

转载 JavaScript数组方法大全(包含ES6)

JavaScript中创建数组有两种方式(一)使用 Array 构造函数:var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // 创建一个包含20项的数组var arr3 = new Array("lily","lucy","Tom"); // 创建一个包含3个字符串的数组(二)使用数组字面量表示法:...

2019-04-13 15:44:29 1555

原创 javascript交换两个数

(1) 临时变量let a = 12,b = 5;let temp = a;a = b;b = temp;(2)数值相加减交换let a = 12,b = 5;a = a + b; //a = 17,b = 5b = a - b; //a = 17,b = 12a = a - b; ...

2019-04-12 15:46:16 386

转载 web前端面试题-开发及性能优化

1、规避javascript多人开发函数重名问题命名空间封闭空间js模块化mvc(数据层、表现层、控制层)seajs变量转换成对象的属性对象化2、请说出三种减低页面加载时间的方法压缩css、js文件合并js、css文件,减少http请求外部js、css文件放在最底下减少dom操作,尽可能用变量替代不必要的dom操作3、你所了解到的Web攻击技术(1)XSS(Cross-Site...

2019-04-10 21:22:32 1220

转载 深入理解B/S与C/S架构

阅读目录 C/S架构简要介绍 什么是B/S架构 B/S架构的几种形式 发展前景 一、C/S架构简要介绍在了解什么是B/S架构之前,我们有必要了解一下什么是C/S架构:C/S架构是第一种比较早的软件架构,主要用于局域网内。也叫客户机/服务器模式。它可以分为客户机和服务器两层:第一层: 在客户机系统上结合了界面显示与业务逻辑;...

2019-04-10 21:19:43 629

animating-resume-master.zip

Dynamic resume inspired by http://strml.net/ Vue实现的动态简历

2019-06-07

javascript讲义

javascript讲义(1).pptx

2019-03-10

前端开发规范

详细的前端开发规范

2019-03-03

javascript讲义(1).pptx

javascript讲义(1).pptx,自学javascript,。。。。。。

2018-10-30

百度校招(2015年)

2015百度校招数据挖掘工程师笔试题sdad232131243455456

2018-06-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除