- 博客(55)
- 收藏
- 关注
原创 每天亿遍---最全前端手写代码题
前端面试手写代码题实在是我的一个弱项,加上面试时紧张会写不出来,下定决心要战胜它只要把它背的像身份证号码一样熟,面试就不再怕了所以总结了一下网上经典的、自己面试遇到过的手写代码题每天亿遍~~ 早日战胜手写代码题欢迎点赞收藏关注,后续会继续补充目录手写Promise、Promise.all、Promise.race手写jsonp手写instanceof手写call手写apply手写bind手写new手写ES5继承手写防抖debounce手写节流throttle手写Promise、Promise.
2021-10-22 17:19:56
481
原创 前端面试自测知识点--手写Promise
手写Promise手写Promise.resolve , Promise.reject, Promise.all, Promise.race/** * @description 手写Promise */class MyPromise { state = 'pending' // 状态 'pending' 'fulfilled' 'rejected' value = undefined // 成功后的值 reason = undefined // 失败后的值 resolveCa
2021-10-08 18:06:34
247
原创 前端面试自测知识点---HTML和CSS
HTML面试题如何理解HTML语义化?好处:让人更容易读懂(增加代码的可读性)让搜索引擎更容易读懂(SEO)举例:header 、footer、article、aside、nav默认情况下,哪些HTML标签是块级元素、哪些是内联元素?HTML可以将元素分类方式分为行内元素、块状元素和行内块状元素三种。首先需要说明的是,这三者是可以互相转换的,使用display属性能够将三者任意转换:(1)display:inline;转换为行内元素(2)display:block;转
2021-09-29 16:43:02
229
原创 MacOS M1 Docker本地部署 WebTestPage
MacOS M1安装docker官网查看安装方法intel和M1会有一点不同M1的安装方法安装好之后,要在设置里授权才可以使用部署WebPageTest安装 WPT Agent 和 WPT Serverdocker pull webpagetest/serverdocker pull webpagetest/agent启动 WPT Agent 和 WPT Server启动 WPT Agent (MacOS建议直接制作镜像 然后再启动)docker run -d -p 4000.
2021-09-16 14:42:43
527
原创 前端面试自测知识清单----防抖和节流
函数防抖和节流防抖就是只执行最后一次,节流就是每隔一段时间执行一次防抖需求:持续触发时不执行不触发的一段时间后才执行解决:想要不触发一段时间后才执行,那就是需要定时器封装一个函数,让持续触发的事件监听是我们封装的这个函数,将目标函数作为回调(func)传进去,等待一段时间过后执行目标函function debounce(func, delay) { return function() { setTimeout(() => { func.appl
2021-09-07 22:25:53
522
2
原创 前端面试自测知识点---对象和对象相关的知识点、手写深拷贝
对象整体结构对象属性的简洁表达法属性名表达式对象里的方法不能使用箭头函数ES6提供的对象中函数的简洁写法:Object.is()`...`Object.assign对象的遍历方式深拷贝和浅拷贝属性的简洁表达法let name = "Lucy"let age = 16let s = "school"let obj = { name, age, s:"PKU"}console.log(obj) // 输出{name: "Lucy", age: 16, s: "PKU"}属性名表
2021-09-03 14:50:51
222
原创 前端面试自测知识点---箭头函数和普通函数的区别
箭头函数和普通函数的区别箭头函数this指向定义时所在的对象,而不是调用时所在的对象不可以当作构造函数不可以使用arguments对象1、语法更加简洁、清晰2、箭头函数不会创建自己的this我们先来看看MDN上对箭头函数this的解释。箭头函数不会创建自己的this,所以它没有自己的this,它只会从自己的作用域链的上一层继承this。箭头函数没有自己的this,它会捕获自己在定义时(注意,是定义时,不是调用时)所处的外层执行环境的this,并继承这个this值。所以,箭头函数中thi
2021-09-03 01:02:52
177
原创 前端面试自测知识点---new和手写new
newnew 操作一个构造函数或类来获取实例// ES5中的构造函数function Person(name, age){ this.name = name; this.age = age}Person.prototype.sayAge = function(){ console.log(`${this.name} is ${this.age} years old`)}var lucy = new Person("Lucy", 18)lucy.sayAge() // Lucy
2021-09-03 00:22:20
148
原创 前端面试自测知识点-原型链
原型链创建对象的几种方法原型、构造函数、实例、原型链instanceof原理new运算符创建对象的几种方法原型链类创建对象有几种方法:// 字面量var o1 = {name:"01"}var o11 = new Object({name:"o11"})// 通过构造函数// 任何一个函数 只要被new使用了,那么它就可以叫做构造函数var M = function(){ this.name = "o2"}var o2 = new M()// 通过Obj
2021-09-02 22:11:02
219
原创 前端面试自测知识点-- apply、call 和 bind
apply 和 callfunc.apply(thisArg, [argsArray]) // 第一个参数:必选,第二个:可选function.call(thisArg, arg1, arg2, ...) apply 传入的第一个参数 指定this的指向 第二个参数是一个数组(接收传递过来的参数)call 传入的第一个参数 指定this的指向 后面的参数是 传递给函数的参数const arr = [1,6,3,5,29,8,7]let maxNumber = Math.max
2021-09-01 22:23:09
469
原创 前端面试自测知识点-闭包
关于闭包「函数」和「函数内部能访问到的变量」的总和,就是一个闭包闭包是 JS 函数作用域的副产品换句话说,正是由于 JS 的函数内部可以使用函数外部的变量,所以这段代码正好符合了闭包的定义。而不是 JS 故意要使用闭包。一个闭包栗子function foo(){ var local = 1 function bar(){ local++ return local } return bar}var func = foo()func()为什么
2021-09-01 11:29:34
145
原创 前端面试自测知识点-立即执行函数
立即执行函数两种常见的写法:(function(){...})()(function(){...}())(function(){console.log(888)}()) // 立刻输出 888(function(){console.log(888)})() // 立刻输出 888var fnName = function(){console.log(666)}() // 立刻输出 666 undefined基本概念:函数声明:function fname(){...};使用func
2021-09-01 11:18:45
191
原创 ReactNative android打包报错Task :react-native-amap3d:compileReleaseKotlin FAILED
问题描述:ReactNative android打包报错:Task :react-native-amap3d:compileReleaseKotlin FAILED截图如下:关键句:Kotlin could not find the required JDK tools in the Java installation '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home' used by Gradle. Make su
2021-08-31 16:46:50
1991
原创 Mac优化终端-iterm2安装配置+oh my zsh配置
使用如下iterm2oh my zsh目录1. 下载安装iterm22. 下载安装oh my zsh3. oh my zsh 的插件4. 值得安装的插件5. 其他1. 下载安装iterm2brew tap caskroom/caskbrew install --cask iterm2之后在应用程序中可以打开iterm2选择iterm2-preferences 可以对iTerm 进行一些配置选择Profiles,可以对Text Color 等配置比如下图 选择Session,.
2021-06-25 13:00:23
1546
1
原创 JS翻转字符串
反转字符串利用下面三个函数:String对象的split() 方法可以分割字符串Array对象的reverse() 方法翻转Array对象Array对象的join() 方法拼接Array中的元素到同一个字符串里str.split("").reverse().join("")...
2021-06-11 17:09:30
128
原创 Mac 安装homebrew报错fatal: unable to access ‘https://github.com/Homebrew/brew/‘: LibreSSL SSL_connect: S
复制homebrew官网指令下载Mac 安装homebrew 报错fatal: unable to access ‘https://github.com/Homebrew/brew/’: LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443解决办法https://www.ipaddress.com/查询无法获取的ip地址然后将ip地址填入本机的host文件里保存之后,重新运行homebrew的下.
2021-06-02 18:23:24
11180
4
原创 ReactNative android打包报错 Task :app:bundleReleaseJsAndAssets FAILED
ReactNative android打包时 报错解决办法 github
2021-05-10 11:14:30
1558
原创 ReactNative android打包报错 Task :app:transformDexArchiveWithDexMergerForRelease FAILED
react native 安卓打包时,出现报错解决方法将下面的代码加入android/app/build.gradle即可android{defaultConfig{ ....... multiDexEnabled true }}来源:github
2021-05-10 11:08:45
372
原创 前端JS使用protobuf
环境:Mac安装 protobuf安装protobuf的编译器,以便编译出各种适合语言的proto文件#brew安装brew install protobuf#检查版本protobuf --version编译指令(假设现在用于js)protoc *.proto --js_out=import_style=commonjs,binary:../pbprotoc --js_out=import_style=commonjs,binary:. test.proto*.proto .
2021-02-01 16:04:12
2653
1
原创 Ubuntu 配置node环境,安装指定版本nodejs npm
ubuntu 安装指定版本nodejs和npm以 Node.js v12.x 为例想要安装其他版本,只需要将指令中连接里的版本号改成对应的即可#使用Ubuntu curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install -y nodejs#使用Debian,root curl -sL https://deb.nodesource.com/setup_12.x | bash -
2021-02-01 15:27:01
12729
1
原创 npm ERR! A complete log of this run can be found in: npm ERR! /Users/dem/.npm/_logs/2021-01-20T0
运行react项目时报出了这样一个错误这个报错里给的1234…方法 删掉node_modules package-lock.json 这些都不管用其实这个错误的关键,也是在报错log里给出了,看下面这句话的意思是:本地已经全局安装了一个babel-jest,并且版本和项目中依赖的不一致所以解决办法:只要把本地的删掉就可以了, cd /Users/demo/node_modules/ 然后把babel-jest删掉就好了!...
2021-01-21 10:33:11
3977
原创 pod install报错-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/b
问题pod install 报错-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory解决办法sudo gem install -n /usr/local/bin cocoapods
2020-12-23 17:07:59
161
原创 合并对象----Object.assign()的使用
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。const target = { a: {"小明":"14岁","地址":{"省":"广东省","市":"深圳市"}}, b: 2 };const source = { b: 4, c: 5 };const returnedTarget = Object.assign(target, source);console.log(target);// 输出: Object { a: O.
2020-11-25 16:27:48
271
原创 傻瓜式入门教程 workbench操作MySQL 建库建表增删查改
一些基础知识:PK: primary key (column is part of a pk) 主键NN: not null (column is nullable) 非空UQ: unique (column is part of a unique key) 唯一AI: auto increment (the column is auto incremented when rows are inserted) 自增创建一个数据库点击桶装图标,弹出创建数据库的页面,然后输入数据库名字然.
2020-11-20 17:36:57
1536
原创 Mac 安装MySQL及简单使用
Step1:在官网找安装包进行安装Step2 安装双击下载好的安装包,然后一直next就顺利安装成功了打开系统偏好设置,可以看到SQL,打开可以进行一些基础的配置Step3 配置环境变量在终端里输入 mysql 会提示-bash: mysql: command not found原因是:没有配置环境变量执行如下:如果是bash,执行open ~/.bash_profile;如果是zsh,执行open ~/.zshrc添加语句export PATH=$PATH:/usr/lo
2020-11-20 14:45:38
7239
2
原创 axios携带token封装及AsyncStorage存储token实现
ReactNative项目中,本地存储通常使用AsyncStorageAsyncStorage中getItem()返回一个Promise在封装的Axios中,拦截请求,将本地存储中的token放进headers里OK,直接开始看实现!具体实现localStorage.js对AsyncStorage的简单封装,实现功能//本地存储//在登录的部分,调用并把token存至本地export const setStringValue = async (key,value) => { .
2020-09-29 15:24:02
723
原创 虚拟DOM好在哪里?DOM Diff是什么呢
规模小(合理情况时)的时候,虚拟DOM快于DOM,原因:虚拟DOM会优化当数据量规模很大时,虚拟DOM会很慢,原因:自身优化计算会占用巨大的时间
2020-09-23 17:34:12
186
原创 electron坑点:跨域,设置`webSecurity:false`无效
背景:electron + react +axios 项目网络请求:登录、请求数据(需要携带cookie)问题:在网络请求时报错,无法进行跨域,设置webSecurity:false也不行问题利用axios进行,登录、请求数据 等网络请求时,报出如下跨域拦截错误根据报错内容提示,意思是说如果request的credentials模式设置为“include”,那么服务器返回的response中的“Access-Control-Allow-Origin”不能是*。在网上搜索解决方法,有两种:.
2020-08-22 16:58:40
7545
6
原创 electron 坑点:npm i electron 下载慢 下载总是失败怎么办?
在electron初始化项目时,总是会遇到一个问题,就是npm i electron 下载巨慢,或者下载失败尝试了很多网上的解决办法,替换镜像,或者直接下载文件放入缓存,都不行,最后只能用cnpm 才成功步骤如下:npm install 卡在electron下载那里,或者下载失败时。直接使用#@后面是需要的版本号cnpm install electron@8.5.0然后就成功了...
2020-08-21 15:40:54
1221
原创 yarn start 启动react项目时 Error: ENOSPC: System limit for number of file watchers reached
环境:系统Linux Ubuntu18.04报错:命令行 yarn start 启动react项目时报错 Error: ENOSPC: System limit for number of file watchers reached解决办法#Step 1 :打开编辑文件sudo gedit /etc/sysctl.conf#Step2:在文件最后一行添加下面这句,并保存fs.inotify.max_user_watches=524288#Step3:执行sudo sysctl -p
2020-08-21 15:29:09
372
原创 react+electron项目报错fs.readFile is not a function electron
问题react+electron项目,在使用node中的fs时,报错fs.XXX is not a function electron解决办法在引入fs时,要在require前加window. 就可以了 var fs = window.require('fs');
2020-08-19 11:14:01
7364
3
原创 快速初始化一个electron+react桌面应用项目
Step1: 初始化一个react应用参考 react官方文档这里要先要安装好create-react-app脚手架安装指令如下:npm install -g create-react-app安装好create-react-app脚手架之后,初始化一个react项目指令如下:npx create-react-app react-electron-app初始化完成之后执行:cd react-electron-appyarn start之后会在浏览器中打开页面http://local
2020-07-27 17:15:09
554
1
原创 ROS Melodic 环境配置 报错 ERROR: cannot download default sources list from:
系统:Ubuntu 18.04.3 LTSros版本:ROS Melodic按照教程 到 1.6步骤时,执行指令报错指令:sudo rosdep init报错:ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.手动.
2020-06-30 17:37:18
2088
原创 问题解决 react-native android打包报错:Error: Duplicate resources
react-native项目,在打Android包时,报错:Error: Duplicate resourcesFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:mergeReleaseResources'.> [raw/node_modules_reactnativevectoricons_glyphmaps_feather] /Users/momo/Docum
2020-06-22 15:38:08
1547
原创 jest 报错 Could not find a config file based on provided values
Error: Could not find a config file based on provided values:path: "/Users/mo/Documents/Demo/node"cwd: "/Users/mo/Documents/Demo/node"Config paths must be specified by either a direct path to a configfile, or a path to a directory. If directory is give
2020-06-17 14:18:38
1278
3
原创 react-native项目
看了很多博客,感觉内容有些老了,参考意义不大react-native 也已经更新到了0.62版本了梳理一下2020年react-native小项目开发过程1 初始化react-native项目1.1 初始化一个react-native项目在配置好react-native环境之后,在终端命令行,输入react-native init your-project-name 初始化一个项目react-native init my-demo...
2020-05-31 22:00:11
531
原创 必读之《JavaScript DOM编程艺术》重点记忆笔记-1
JavaScript DOM编程艺术1、什么是DOM? 简单来说DOM是一套对文档的内容进行抽象和概念化的方法2、W3C 对DOM的定义:一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态地访问和修改文档的内容、结构和样式。3、用JavaScript编写的代码必须通过HTML/XHTML文档才能执行Ch24、程序设计语言分为解释型和编译型两大类。Java或C++等语言需...
2020-05-28 18:01:56
294
原创 打开/跳转一个链接:window.open和window.location
1.window对象window对象表示浏览器中打开的窗口。如果文档中包含框架(<frame>或<iframe>标签),浏览器会为HTML文档创建一个window对象。2. window.locationlocation对象是window对象的一部分,也可以说是window的一个属性,location对象包含有关当前URL的信息。修改location属性是替换当页,也就是重定位当前页。3. window.openopen()是window对象的方法window.ope
2020-05-28 10:39:22
2618
原创 react-native 全面屏适配 ios Android
背景:现在ios和android都有五花八门的全面屏,但同时用户里也依然有很多使用非全面屏手机的用户在使用react-native进行原生开发时,如何进行全面屏适配呢?1.ios全面屏适配1.1 SafeAreaViewSafeAreaView是react-native提供的组件,目前仅支持 iOS 设备以及 iOS 11 或更高版本。目的是在一个“安全”的可视区域内渲染内容。避免内容渲染到不可见的“刘海”范围内,SafeAreaView只对ios设备生效。1.2 SafeAreaVi.
2020-05-20 15:17:52
2196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人