自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Milk~每天分享一点点,技术进步一点点

做自己、多行动、多总结~~

  • 博客(387)
  • 资源 (2)
  • 收藏
  • 关注

转载 【2021】关于JS数据类型的题目

关于JS数据类型的题目1. null是对象吗?为什么?结论: null不是对象解释: 虽然 typeof null 会输出 object,但是这只是 JS 存在的一个悠久 Bug。在 JS 的最初版本中使用的是 32 位系统,为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象然而 null 表示为全零,所以将它错误的判断为 object2. ‘1’.toString()为什么可以调用?这个语句运行的过程中做了这样几件事情:var s = new String('1');s.toS

2021-01-06 13:49:14 683

原创 【工具类】记录一些常用的正则表达式

记录一些常用的正则表达式一、e.target.value.replace(/\s+/g, "")这个例子使用的是正则表达式匹配字符串,其中"/ /"这个是固定写法"\s"是转移符号用以匹配任何空白字符,包括空格、制表符、换页符等"g"表示全局匹配将替换所有匹配的子串,如果不加"g"当匹配到第一个后就结束了这个例子就是将原字符串中的所有空白字符替换成"",比如"abc d efg “字样的字符串使用这个函数后变成"abcdefg”参考 https://blog.youkuaiyun.com/zcb15

2021-01-06 10:21:39 570 2

原创 【2021】最新的ECMAScript标准定义了8种数据类型

最新的ECMAScript标准定义了8种数据类型一、七种基本数据类型BooleanNullUndefinedNumberStringSymbol ( ES6新增).。一种实例是唯一且不可改变的数据类型Bigint 任意精度的整数,可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制二、一种引用数据类型:Object(包含普通对象-Object,数组对象-Array,正则对象-RegExp,日期对象-Date,数学函数-Math,函数对象-Function)参考:htt

2021-01-05 09:26:14 824

转载 【TypeScript】初步了解类型推论

TypeScript 初步了解类型推论类型推断:类型是在哪里如何被推断的?TypeScript里,在有些没有明确指出类型的地方,类型推论会帮助提供类型,例如:let x = 3;变量 x 的类型被推断为数字。 这种推断发生在初始化变量和成员,设置默认参数值和决定函数返回值时最佳通用类型当需要从几个表达式中推断类型时候,会使用这些表达式的类型来推断出一个最合适的通用类型,例如:let x = [0,1,null]为了推断x的类型,我们必须考虑所有元素的类型。 这里有两种选择: number

2021-01-04 17:16:42 231

转载 【TypeScript】初步了解枚举

TypeScript 初步了解枚举理解:枚举是列举固定几个值,直接定义变量的话的话可以随意定义,枚举只能使用你定义好的几个值。使用枚举我们可以定义一些带名字的常量,TypeScript支持数字的和基于字符串的枚举使用了枚举,别人只能传你枚举类里定义好的几个类型,传其它的就会在编译时期报错数字枚举我们定义了一个数字枚举, Up使用初始化为 1。 其余的成员会从 1开始自动增长(自增长1)。 换句话说,Direction.Up的值为 1, Down为 2, Left为 3, Right为 4enum

2021-01-04 16:51:48 192

转载 【TypeScript】初步了解泛型

TypeScript 泛型泛型函数:重用性高 使返回值的类型与传入参数的类型是相同的类型变量:T 只用于表示类型,不表示值function a<T>(arg: T): T { return arg;}这里 a 添加了类型变量 T。T能够捕获用户传入的类型(例如:number),同时我们使用了T当做返回值类型。这样参数类型和返回值类型是相同的,这里的 a 函数就叫做泛型,它可以适用于多个类型。 不同于使用 any,它能够保持准确性(any 返回任意类型的值)泛型函数使用方法:一

2021-01-04 15:01:06 226

原创 【错题记录】前端面试选择题【篇一】

前端面试刷题1. 实现翻书的效果可以使用css3里的什么方法rotateY解析:2. display:none 和 visibility:hidden的说法,正确的是1. display:none与visibility:hidden都可以用来隐藏某个元素2. display:none在隐藏元素的时候,将其占位空间也去掉;而visibility:hidden只是隐藏了内容而已,其占位空间仍然保留解析:一、两者的功能都是隐藏某个元素二、不同的是 :display属性设定为“none”的元

2021-01-04 13:13:51 319

原创 【生活印记】 “唠叨“ === 低情商表现,热心帮助要选对的人

“唠叨” === 低情商表现,热心帮助要选对的人昨晚躺在床上,我主动向合租的朋友问了一个话题“现在我们毕设还没怎么开始做,你紧不紧张?”朋友说:“紧张啊,还不知道怎么办呢?”后面,我听到朋友说紧张,就自己开始唠唠叨叨说了一些类似于鼓动的话,絮絮叨叨几分钟,朋友一句话:“你有时间在这里盘算,不如早点睡觉,明天起来做。”当时我脑抽了,有些较劲,应了一句:“我可以早睡啊”。当我说完这句话时,突然意识到,冲动了。细细想朋友说的话的语气和态度,发现不对劲。一夜未眠,反思生活,发现类似的事情也不少。记得有一次,天气

2020-12-23 17:32:00 270 1

原创 【错题记录】JavaScript专项练习(篇十)

JavaScript专项练习(篇十)1. 下述代码实现结果是解析:答案 鼠标单击Button1后将Button1**移动**到Button2的后面clone 方法复制的button1属于一个新的元素 视觉上是button1经过点击后到了button2的后面,但是实质上新clone的button1和原来的button1并非属于同一个元素。移动的话其实不严谨2. 下面的输出结果:(function() { var a = b = 5; })(); console.log(b);

2020-12-20 01:37:24 287 2

原创 【阅文笔记】让你轻松了解何为 作用域闭包【你不知道的JavaScript(上)】

作用域闭包词法作用域就是定义在词法阶段的作用域。 换句话说, 词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的, 因此当词法分析器处理代码时会保持作用域不变(大部分情况下是这样的)词法作用域 有 查找JavaScript中闭包无处不在, 你只需要能够识别并拥抱它闭包是基于词法作用域书写代码时所产生的自然结果, 不需要为了利用它们而有意识地创建闭包。 闭包的创建和使用在你的代码中随处可见。 缺少的是根据自己的意愿来识别、 拥抱和影响闭包的思维环境一、实质问题闭包的定义,你需要掌

2020-12-19 19:11:18 168 1

原创 【错题记录】JavaScript专项练习(篇九)

JavaScript专项练习(篇九)1. 如何判断一个js对象是否是Array,arr为要判断的对象,其中最准确的方法是a. typeof(arr)b. arr instanceof Arrayc. arr.toString==='[object Array]'d. Object.prototype.toString.call(arr) === '[object Array]'typeof(arr) 返回的是 Objectinstanceof 在跨 frame 对象构建的场景下会失效arr

2020-12-19 14:14:11 553 1

原创 【Jquery】获取当前窗口的宽度值/高度值

Jquery获取当前窗口的宽度值/高度值

2020-12-18 23:19:35 1252 1

原创 【JS面试题】实现链式调用

实现链式调用链式调用的核心就在于调用完的方法将自身实例返回链式调用完方法后,return this返回当前调用方法的对象示例一:function a() { console.log("初始化")}a.prototype.method = function(param) { console.log(param) return this}let b = new a()// 由于new在实例化的时候,this会指向创建的对象,所以this.method这个方法会在原型链中找到b

2020-12-18 11:16:46 560

原创 【错题记录】JavaScript专项练习(篇八)

1. 下面哪个选项中的对象与Browser有关a. window,locationb. location,historyc. navigator,windowd. historylist,location解析:答案 b

2020-12-18 00:41:28 292 1

原创 【错题记录】JavaScript专项练习(篇七)

1. 以下代码执行后,result 的值是:var result = "75team2017".match(/\d+\w*/g);解析:答案 75team2017因为“+”和“*”都是贪婪匹配,它们尽可能多地匹配字符,所以“\d+"匹配”75“,”/w*“匹配”team2017“,而”/g"就没有使用的机会了&quot属于html中的特殊字符的转义,为双引号2.你想通过 XMLHttpRequest更新以下元素,即通过div显示状态,哪个是正确的做法(把XHR的状态返回在这个div

2020-12-17 22:42:44 788

原创 【阅文笔记】提升【你不知道的JavaScript(上)】

提升函数作用域和块作用域的行为是一样的, 可以总结为: 任何声明在某个作用域内的变量, 都将附属于这个作用域。但是作用域同其中的变量声明出现的位置有某种微妙的联系,这正是提升一、先有鸡还是先有蛋直觉上会认为 JavaScript 代码在执行时是由上到下一行一行执行的。 但实际上这并不完全正确, 有一种特殊情况会导致这个假设是错误的。考虑下面代码:????a = 2;var a;console.log( a );你认为 console.log(…) 声明会输出什么呢?很多开发者会认为是 u

2020-12-16 03:23:22 299

原创 【阅文笔记】块作用域【你不知道的JavaScript(上)】

块作用域函数作用域是最常见的作用域单元,但其他类型的作用域单元也是存在的。除 JavaScript 外的很多编程语言都支持块作用域,因此对于主要使用 JavaScript 的开发者来说, 块作用域这个概念会很陌生尽管你可能连一行带有块作用域风格的代码都没有写过, 但下面代码一定很熟悉:for (var i=0; i<10; i++) { console.log( i );}我们在 for 循环的头部直接定义了变量 i, 通常是因为只想在 for 循环内部的上下文中使用 i, 而忽略了

2020-12-16 02:30:47 211

原创 【阅文笔记】函数作用域【你不知道的JavaScript(上)】

函数作用域一、函数作用域我们已经知道, 在任意代码片段外部添加包装函数, 可以将内部的变量和函数定义“隐藏” 起来, 外部作用域无法访问包装函数内部的任何内容看下面代码:var a = 2;function foo() { // <-- 添加这一行 var a = 3; console.log( a ); // 3} // <-- 以及这一行foo(); // <-- 以及这一行console.log( a ); // 2它并不理想,首先,必须声明一个具名函数 fo

2020-12-16 00:43:29 160

原创 【阅文笔记】函数中的作用域、隐藏内部实现、规避冲突【你不知道的JavaScript(上)】

作用域包含了一系列的“气泡”, 每一个都可以作为容器, 其中包含了标识符(变量、 函数) 的定义。 这些气泡互相嵌套并且整齐地排列成蜂窝型, 排列的结构是在写代码时定义的究竟是什么生成了一个新的气泡?一、函数中的作用域对于上面的问题,最常见的答案:JavaScript 具有基于函数的作用域, 意味着每声明一个函数都会为其自身创建一个气泡,而其他结构都不会创建作用域气泡 事实上这并不完全正确考虑以下代码:function foo(a) { var b = 2; // dosomething

2020-12-16 00:17:37 206

原创 【阅文笔记】词法作用域【你不知道的JavaScript(上)】

词法作用域作用域共有两种工作模型。 第一种是大多数编程语言所采用的词法作用域。 另外一种叫作动态作用域(少有编程语言用)词法作用域就是定义在词法阶段的作用域。换句话说, 词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的, 因此当词法分析器处理代码时会保持作用域不变考虑以下代码:function foo(a) { var b = a * 2; function bar(c) { console.log(a, b, c) } bar(b * 3)}foo(2); /

2020-12-15 21:36:03 114

原创 【阅文笔记】作用域是什么【你不知道的JavaScript(上)】

作用域是什么1.1 编译原理在传统编译语言的流程中, 程序中的一段源代码在执行之前会经历三个步骤, 统称为“编译”一、分词/词法分析这个过程会将由字符组成的字符串分解成有意义的代码块, 这些代码块被称为词法单元。 例如, 考虑程序 var a = 2;。 这段程序通常会被分解成为下面这些词法单元: var、 a、 =、 2 、 ;二、解析/语法分析这个过程是将词法单元流(数组) 转换成一个由元素逐级嵌套所组成的代表了程序语法结构的树。 这个树被称为“抽象语法树”(AST)。var a = 2

2020-12-15 17:34:25 122

原创 【错题记录】JavaScript专项练习(篇六)

1. 下列描述中,错误的是a. 面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上b. 面向对象的三大特性包括:封装,继承,多态解析:答案 a引用对象引用的是实际的对象,对引用的修改就是对对象的修改2. 从字符串 const str = ‘qwbewrbbeqqbbbweebbbbqee’;中能得到结果 [“b”, “bb”, “bbb”, “bbbb”] 以下错误语句是a. str.match(/b+/g)b.

2020-12-15 02:24:37 1353

原创 【错题记录】JavaScript专项练习(篇五)

1.以下程序执行后返回的结果是var p1 = { name:'小明', age:'12', action:function(where,doing){ console.log(this.age + '岁的'+this.name + '在' + where + doing); } }var p2 = { name:'小红', age:'15'}console.log(p1.action.call(p2,'操场上','运动'))解析:答案 15岁的小红在操场上运动

2020-12-14 21:29:18 1074

原创 【错题记录】JavaScript专项练习(篇四)

1.下列正确定义函数的是a. function foo() {}b. Function foo() {}c. var foo = new Function() {}d. var foo = new function() {}解析:答案 aa:function foo() {} 是普通函数声明b:Function 应是小写c、d:使用了Function构造函数,正确写法:var foo = new Function();在JavaScript定义一个函数一般有如下三种方式:1.函数关键字

2020-12-14 18:28:31 1178

原创 【错题记录】JavaScript专项练习(篇三)

1.下面代码执行结果是var datas=[10,20,30];datas.unshift(40,50); // 首部添加 [40,50,10,20,30]datas.pop(); // 尾部删除 [40,50,10,20]datas.push(60,70); // 尾部添加 [40,50,10,20,60,70]datas.shift(); // 首部删除 [50,10,20,60,70]console.log(datas.toString());解析:答案 50,10,20,60,

2020-12-12 20:50:02 789

原创 【错题记录】JavaScript专项练习(篇二)

1.下列事件哪个不是由鼠标触发的事件a. clickb. contextmenuc. mouseoutd. keydown解析:答案 dclick 鼠标点击事件contextmenu 当浏览者按下

2020-12-12 18:21:55 1185

原创 【错题记录】JavaScript专项练习(篇一)

1.下面这段JS程序的执行结果是:var a = [1,2,3];var b = a.slice();b.push(4);console.log(a)解析:这里是输出a,答案是[1,2,3]slice()方法返回新数组,不会改变原数组。它的参数有两个,第一个参数start,缺省为0,第二个参数end,缺省为末尾2.以上代码,在浏览器中执行的结果是var A = { n:4399};var B = function() { this.n = 9999};var C = f

2020-12-11 19:54:44 445 1

原创 【程序人生】记大三中遇到的一些迷茫

记大三中遇到的一些迷茫生活不是一帆风顺,应当是有起有落,没有伞的孩子,就努力在雨中奔跑吧!相信经历风雨的磨砺,一路上感受到不一样的景色,会变得更加坚强,成为更好的自己~~      在大二升大三的时候,我记得在暑假期间,给老师发了短信(大二的时候,老师还是比较关注我的,毕竟那时候能力比较好一些),信中是希望老师能够在大三的时候,看能不能带我进入工作室锻炼(一位进百度的师兄给我推荐的方式),当时师兄和我说,在游戏系工作室是特别能够锻炼自己的。

2020-12-07 18:16:54 4345 20

原创 【Git】代码提交规范

git代码提交规范格式: type(scope) : subject(1) type(必须): commit 的类别,只允许使用下面几个标识:????① feat:提交新功能② fix:修复了bug③ docs:只修改了文档④ style:调整代码格式,未修改代码逻辑(比如修改空格、格式化、缺少分号等)⑤ refactor:代码重构,既没修复bug也没有添加新功能⑥ perf:性能优化,提高性能的代码更改⑦ test:添加或修改代码测试⑧ revert: 撤销上一次的commit⑨

2020-12-04 09:53:20 597

原创 【开发那些事】记第一次独立开发PC端页面【React+ahooks】

记第一次独立开发PC端页面遇到的问题11.2日下午,与波涛哥对接客车效益项目,第一次知道项目有主项目和子项目之分,子项目(后端)依赖于主项目上, 通过扩展包的形式加载(具体如何实现还需要后续了解),先启动主项目,后启动子项目,子项目后端的修改需要重启主项目,在这之后,我开始安装项目的依赖,我用npm install、cnpm install等形式安装主项目总会出错,后来问了涛哥和林哥都没有解决,时间就到了11.3日下午,直到超哥说用yarn install,问题才解决了,这时候我才意识到时间花费太多了,问

2020-12-03 20:21:37 720

转载 【Mysql】case when then else end 用法

case when then else end 用法一、简单写法第一种写法:SELECT s.s_id, s.s_name, s.s_sex, CASEWHEN s.s_sex = '1' THEN '男'WHEN s.s_sex = '2' THEN '女'ELSE '其他'END as sex, s.s_age, s.class_idFROM t_b_student sWHERE 1 = 1第二种写法SELECT s.s_

2020-11-13 15:52:24 673

原创 【我与bug那些事】做一个页面开发时需要注意的地方(涛哥的教导)

做一个页面开发时需要注意的地方一、每次做完一个功能,都commit一次,不能堆积一起commit,这样如果多人开发,会导致冲突,最后吃亏的是自己二、按照原型和UI设计图时,不能盲目只看一个图来开发,要两个都观察,如果有不一致的地方,及时和产品经理沟通三、对于字段名,如果UI设计图上的与实际Sql对接的字段名不一样,需要及时与后端沟通,防止数据出错,对接不上四、在开发之前,想想如果去设计组件,对于组件之间的拆分,要找组件间的共同点,拆组件时,拆的越细越好,这样子开发起来比较大家都友好五、每个页面的代

2020-11-13 15:18:53 164 2

原创 【项目实战】基于前后端分离的WebApp“衣推”的设计与实现(Demo)

基于前后端分离的WebApp“衣推”的设计与实现(Demo)前言一、开发时间、技术栈开发时间:2020.10.15–2020.11.1(时间赶,只做了个破产版)技术栈:Vue.js + Egg.js二、项目成效三、后端结构设计(Egg.js + Mysql +Sequelize)1. 插件的开启与配置:plugin.js 中的每个配置项支持:(常用)这里的话,使用了 egg-jwt + egg-cors 实现跨域/处理token、egg-sequelize 数据库查询、egg-val

2020-11-12 09:56:53 465 1

转载 【HTML】FormData 模拟表单控件,提交 content-type 是 multipart/form-data

FormData 模拟表单控件,提交 content-type 是 multipart/form-data看个例子:输入框输入 12 时,发送请求的头部信息如下 ????原因这是由于你提交的是 FormData 对象,不设置头的话 XMLHttpRequest 会调用 FormData 接口,默认将你的请求头设置为 multipart/form-data,相当于 form 表单提交设置 form 设置 enctype=“multipart/form-data” ,而表单默认 post 提交是

2020-10-30 21:27:49 697

转载 【HTML】POST的Content-Type引发的HTTP相关知识思考

关于Content-TypeContent-Type是实体头域(或称为实体头部,entity header)用于向接收方指示实体(entity body)的介质类型的,或称为资源的MIME类型,现在通常称media type更为合适。(例如,指定HEAD方法送到接收方的实体介质类型,或GET方法发送的请求介质类型,表示后面的文档属于什么MIME类型。)在响应中,Content-Type标头告诉客户端实际返回的内容的内容类型。浏览器会在某些情况下进行MIME嗅探,并不一定遵循此标题的值; 为了防止这种行为

2020-10-30 14:38:50 425

原创 【我与bug那些事】Vue 点击选项(有相应分数)实现分数相加【思路】

点击选项(有相应分数)实现分数相加【思路】test 里面的da 为 相应分数~forEach因为是要实现数值发生变化时,在页面上DOM同步更新~所以可能会用到计算属性 ????可以结合????博客,观摩下 Vue计算属性实现计算分数例子~Vue计算属性...

2020-10-30 10:54:10 619

原创 【Vue】移动端图片裁剪组件--vue-imgcut

移动端图片裁剪组件–vue-imgcut安装npm install vue-imgcut --saveGitHub地址使用说明template模板中引入文件编写方法callback :回调函数 img 是base64字符串width: 截取宽单位pxheight :截取高单位px

2020-10-28 11:19:02 1245

原创 【Egg】实现上传头像到本地服务器(单独一个图片文件)

Egg 实现上传文件到本地服务器要理解当前代码,需要了解node.js 的 stream 工作原理,后续博客再分享~这里以base64转换为file文件类型的上传头像为例子// 上传头像async uploadAvatar() { const { ctx } = this; const stream = await ctx.getFileStream(); // 获取文件流}console.log(stream) ????const filename = Math.rand

2020-10-28 10:48:52 1109

转载 【Node.js】path.extname方法

path.extnamepath.extname('index.html'); // returns '.html'path.extname('index.'); // returns '.'path.extname('index'); // returns ''

2020-10-28 10:11:05 2923

原创 【JS实战】base64转换为file文件类型(上传头像为例子)

base64转换为file类型点击头像,选择文件点击选取时,获取base64文件这里使用了Vue-ImgCut插件(后续博客介绍)代码讲解function base64toFile(dataurl, filename = "file") { let arr = dataurl.split(",") }console.log(arr) ????let mime = arr[0].match(/:(.*?);/)[1];console.log(mime) ????

2020-10-27 22:24:36 871

移动应用开发技术介绍及Vue.js起步.pptx

移动应用开发技术介绍及Vue.js起步,清晰明了用PPT介绍了里面的内容,更好的去了解何为Vue.js,它的主要场景是什么等

2020-10-26

React基础知识.md

react一些基础知识,特别好用啊,在这次学习中,深刻感受到react的好用,感觉受益匪浅,大家喜欢的可以下载看看,对于基础知识有一定的帮助

2020-08-07

空空如也

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

TA关注的人

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