
javascript
文章平均质量分 67
lazy_tomato
wx w2505655377
展开
-
Vue3响应式基础 ref 和 reactive
setup。原创 2024-11-20 21:13:26 · 931 阅读 · 0 评论 -
前端 javascript a++和++a的区别
【代码】前端 javascript a++和++a的区别。原创 2024-11-19 20:15:11 · 318 阅读 · 0 评论 -
protobuf&Javascrip编码解码演示
(简称Protobuf) ,是Google出品的序列化框架,与开发语言无关,和平台无关,具有良好的可扩展性。Protobuf和所有的序列化框架一样,都可以用于数据存储、通讯协议。Protobuf支持生成代码的语言包括Java、Python、C++、Go、JavaNano、Ruby、C#,官网地址是。Portobuf的序列化的结果体积要比XML、JSON小很多,XML和JSON的描述信息太多了,导致消息要大;此外Portobuf还使用了Varint编码,减少数据对空间的占用。Portobuf。原创 2024-10-12 20:40:35 · 1141 阅读 · 0 评论 -
Could not retrieve https://npm.taobao.org/mirrors/node/index.json. 报错解决
今天使用nvm下载不同版本的nodejs的时候报错了提示无法检索地址,然后报错了。其实就是这个域名过期了。原创 2024-10-01 09:28:30 · 352 阅读 · 0 评论 -
用大白话讲 TypeScript,两小时快速上手TypeScript (下) (4)
装饰器(Decorator)是一种语法结构,用来在定义时修改类(class)的行为。装饰器(Decorator)用来增强 JavaScript 类(class)的功能。个人理解:装饰器可以拓展类的功能。关于装饰器的版本TypeScript 从早期开始,就支持装饰器。但是,装饰器的语法后来发生了变化。ECMAScript 标准委员会最终通过的语法标准,与 TypeScript 早期使用的语法有很大差异。目前,TypeScript 5.0 同时支持两种装饰器语法。原创 2024-03-15 23:30:00 · 870 阅读 · 0 评论 -
用大白话讲 TypeScript,两小时快速上手TypeScript(上) (3)
TypeScript官网英译:TypeScript是带有类型语法的JavaScript。简单来说,ts就是在js的基础上扩展了类型语法,有了类型语法,有利于代码的静态分析;发现错误;做到语法提示和自动补全;举个例子,你封装了一个函数add,有两个参数a和b,函数的作用是返回a和b的和。由于涉及到加法,所以你希望传入的两个参数都是数字类型的,不希望有其他类型的,此时就可以使用ts做类型限制。add(1, 2)原创 2024-03-08 23:45:00 · 2114 阅读 · 0 评论 -
javascript 中 class 的继承(2)
在JavaScript中,继承是面向对象编程的一个核心概念,它允许一个对象(称为“子类”或“派生类”)继承另一个对象(称为“父类”或“基类”)的属性和方法。这意味着子类可以重用父类的代码,同时还可以定义自己的新属性和方法。原创 2024-03-08 23:45:00 · 1110 阅读 · 0 评论 -
javascript中的class基础入门(1)
本文对应版本。编写脚本的语言是TypeScript,在了解TypeScript中的语法之前,我们先掌握javascript中的class。后面为了方便描述,javascript我简称为jsTypeScript简称为ts可以理解为是具有类型语法的js,用大白话说,ts是基于js,扩充了类型语法。本文仅对class主要内容进行说明,更详细说明可参考阮一峰-ECMAScript 6 入门-class基础语法// 直接使用 class 关键词定义即可class小写;Point。原创 2024-03-01 20:49:45 · 1256 阅读 · 0 评论 -
五分钟快速使用nodejs搭建一个文件上传
基于nodejs 编写一个文件上传的服务原创 2024-01-18 00:15:00 · 623 阅读 · 0 评论 -
手写题目4:快速获取数组中最大的三项
转换那么多本质上还是排序,这里快速编写常见的排序算法。原创 2023-09-11 23:45:00 · 306 阅读 · 0 评论 -
手写题目3:算出一个dom里面所有元素的节点数
获取一个dom元素内的所有节点数。原创 2023-09-07 23:45:00 · 316 阅读 · 0 评论 -
手写题目2:编写一个解析url中参数的函数
【代码】手写题目2:编写一个解析url中参数的函数。原创 2023-09-07 23:45:00 · 288 阅读 · 0 评论 -
手写题目一:手写节流和手写防抖
【代码】手写题目一:手写节流和手写防抖。原创 2023-09-07 23:45:00 · 206 阅读 · 0 评论 -
javascript中先加加和后加加区别 ++a,a++
javascript中先加加和后加加区别 ++a,a++原创 2023-09-04 23:30:00 · 205 阅读 · 0 评论 -
git查漏补缺之cherry-pick
我们正常的工作场景中,合并分支中的代码,往往都是通过merge命令达到效果。但是某些情况,使用往往会非常方便。英译:精选/挑选但是我最近有遇到过这么一个情况,我自己commit提交的几个分支代码,被别人的代码覆盖了。虽然代码被覆盖了,但是代码提交的commit还是存在的,这个时候就可以使用 cherry-pick 将我自己的部分commit 合并过来。我在主干master分支上,突然想合并某个功能分支的某一个commit,全量的merge并不符合我的要求,此时可以尝试使用。挑选的意思。原创 2023-03-21 22:02:03 · 749 阅读 · 1 评论 -
git查漏补缺之 stash
我正在分支A上开发功能A,突然叫我去临时解决B分支上的bug,我们需要将分支切换到B分支。默认恢复git栈中最新的一个stash@{num},建议在git栈中只有一条的时候使用,以免混乱。将当前的改动存储起来,当前分支还原到没有改动的位置,注意此时你所有的改动内容,会被存储在。:查看堆栈中最新保存的stash和当前⽬录的差异,显⽰做了哪些改动,默认show第一个存储。保存的内容,序号在最前面(也就是说,最新保存的内容,序号是0,越新序号越小)。,我们可以指定分支的序号,指定恢复。:移除全部的stash。原创 2023-03-21 00:02:06 · 357 阅读 · 0 评论 -
javascript复习之旅 2.2 typeof
【代码】javascript复习之旅 2.2 typeof。原创 2022-11-29 20:32:20 · 533 阅读 · 0 评论 -
JavaScript 中常用的排序
如果不取出中间的元素,假如:获取到的中间元素是最大的或者最小的元素。实现原理:for 循环加递归,每次递归从数组中间抽取一项,比中间项小的项,放左侧数组,比中间项大的项,放右侧数组。实现原理就是:双重 for 循环,内层的循环实现相邻的两项进行对比,外层循环每执行完一次,都会筛选出当前数组中最大的项。实现原理:双层循环,内层循环会将数组每一项向后移,直到匹配到满足条件的数据,将其插入对应的数组位置。自己手写这里的代码的时候,这里的取中间元素,我没有使用 splice,将项截取出来。上述的代码,是选择排序。原创 2022-11-27 16:35:51 · 861 阅读 · 0 评论 -
js变量控制css样式
【代码】js变量控制css样式。原创 2022-11-06 21:30:47 · 891 阅读 · 0 评论 -
修改了 node_modules 中的依赖,如何共享: `patch-package`
通常一些前端项目,都会引入第三方库,但是有时候第三方库有 bug 或者不够完美的情况。对于我们这种走在最前沿的人来说,在能力允许的情况下,就会想自己手动更改。执行完函数命令之后,得到存储差异信息的文件。我想了解下方的命令,在源码中是如何实现的。中的依赖,来达到快速修复问题的目的。的基础使用,记住下方的两个命令即可。中的依赖,并不会持久化,无法团队共。更详细的使用方法,可以参考官方介绍。着重对比一下,执行完毕第二步后的。简述一下,这两行命令的实现原理。真正项目上使用的时候,命令执行之前,即:执行。原创 2022-11-06 21:29:39 · 1095 阅读 · 0 评论 -
Source map 超详细学习攻略_番茄出品
简单来说 Source map 就是一个存储信息的文件,里面储存着位置信息。Source map 英文释义:源程序映射。转换后的代码对应的转换前的代码位置映射关系。有了 Source map,就算线上运行的是转换后的代码,调试工具中也可以直接显示转换前的代码。这极大的方便了我们开发者调试和排错。就以我们上述案例生成的为例,我们来了解一下,它的内容结构是怎样的。{// version:Source map 的版本,目前为 3。"version" : 3 , // file:转换后的文件名。原创 2022-11-06 21:28:33 · 3384 阅读 · 2 评论 -
javascript 字符串中与正则有关的方法
如果在 str 中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素。如果分隔符为空字符串,则将 str 原字符串中每个字符的数组形式返回。当提供此参数时,split 方法会在指定分隔符的每次出现时分割该字符串,但在限制条目已放入数组时停止。split() 方法使用指定的分隔符字符串将一个 String 对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。第一个参数:分割字符串的分隔符,可以为字符串,也可以为正则。简单来说,只要符合正则表达式的逻辑,就把它当做分隔符。原创 2022-10-13 00:04:30 · 440 阅读 · 0 评论 -
JS中的斐波那契数列 + 优化 + 思考
但是我自己印象非常深刻,因为我前几天还自己写了一个首字母转换的函数,看到 Vue2 的写法,觉得很棒,这也是一个思路,缓存的思路。个人理解:简单来说,就是一个函数调用栈的优化,如果是函数尾部调用函数,编译器会帮我们优化掉对应的。传统的递归,会创建很多的函数调用栈,如果遇到复杂的递归,很容易造成栈溢出。让我不禁想起来最近再看 Vue2 源码的时候,看到的一个工具函数。这种方式对于我来说,是最容易想到的,将已经计算过的。简单来说,从最小的颗粒度开始解决问题,直到顶部。结合公式,落实到具体的代码就是上述的逻辑。原创 2022-10-11 19:46:21 · 1196 阅读 · 0 评论 -
页面中使用iframe
综上所述:最优解是同源的情况,可以直接操作 dom,可以不借助 postMessage 直接通信。如果不同源,可以通过 postMessage,传递消息。但是需要在 iframe 中添加代码主动发送消息,外层页面监听 message 事件接受数据;原创 2022-09-02 09:27:31 · 3603 阅读 · 0 评论 -
Object.create()
则该传入对象的自有可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)将为新创建的对象添加指定的属性值和对应的属性描述符。方法用于创建一个新对象,使用现有的对象来作为新创建对象的原型(prototype)。的情况,可以沿着原型链寻找直到寻找到 null , 所以它可以在原型链上获得。以 null 为原型生成的对象,更纯粹,以至于没有从。如果该参数被指定且不为 undefined。一个新对象,带着指定的原型对象及其属性。,先去谷歌浏览器打印一下。新创建对象的原型对象。...原创 2022-08-18 23:17:50 · 2586 阅读 · 0 评论 -
数组扁平化
ES6 在数组上新增的方法:Array.prototype.flat。原创 2022-08-15 22:58:28 · 210 阅读 · 0 评论 -
Js中的 parseInt
由于 parseInt 第二个参数的推算并不稳定,所以建议在使用 parseInt 的时候第二个参数也添加上。第一个参数默认为字符串类型,不是字符串类型,会被toString;如果字符串无法解析,直接返回NaN;第二个参数指定为 0 或未指定,会根据第一个参数的格式,进行推断。基数的取值范围为 2-36;基数超出范围NaN;...原创 2022-08-14 19:43:14 · 14837 阅读 · 0 评论 -
使用axios传递参数,为什么`new Date()` 会变成 `2022-08-10T11:33:56.849Z`
最后定义的请求拦截器 =》 最先定义的请求拦截器 =》 请求 =》 最先定义的响应拦截器 => 最后定义的响应拦截器。我自己验证了一下,如果使用默认的配置对象 default,在接口调用时传入一个对象作为参数,就会调用。看了源码才知道,我们不论是 get 还是 post 请求,都是基于。里面写的什么,首先我把源码做了精简,只看主干逻辑。验证一下第 5 点说的逻辑,看拦截器执行的顺序。验证一下第 6 点说的逻辑,看请求数据的格式化。随即验证了一下拦截器的执行顺序,执行顺序。所以很有必要去看一下。...原创 2022-08-11 20:07:21 · 906 阅读 · 0 评论 -
请讲一讲JS中的 for...in 与 for...of (下)
对象(Object)之所以没有默认部署 Iterator 接口,是因为对象的哪个属性先遍历,哪个属性后遍历是不确定的,需要开发者手动指定。不过,严格地说,对象部署遍历器接口并不是很必要,因为这时对象实际上被当作 Map 结构使用,ES5 没有 Map 结构,而 ES6 原生提供了。of 语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。还有一个区别这里提一下,for…..原创 2022-08-10 19:58:49 · 502 阅读 · 0 评论 -
请讲一讲JS中的 for...in 与 for...of (上)
in 语句以任意顺序迭代一个对象的除 Symbol 以外的可枚举属性,包括继承的可枚举属性。in 的验证案例,对 for…in 有一个初步的了解。所以需要注意下,for…in 无法遍历 Symbol 类型的属性;迭代的顺序是任意的,所以 MDN 后续文档又这么一句话。定义(默认 enumerable 为 false);除 Symbol 以外的可枚举属性。原型链上的可枚举属性也会被遍历到。快速判断属性是否可枚举可通过。ps 不太建议遍历数组。是否可枚举,可以通过。包括继承的可枚举属性。...原创 2022-08-09 19:11:08 · 294 阅读 · 0 评论 -
学习一下 常说的节流
同样是输入框的键盘事件,两者具体使用谁,还是需要看具体的业务场景。节流(throttle),减少流量,短时间内触发多次,我每隔一段时间触发一次;// 5.由于要使用定时器,所以这里存储一下 this 和 arguments。// 9.如果不满足节流限制,且没有定时器,添加一个定时器。// 1. 和防抖类似,接收两个参数:函数,间隔时间。// 8. 满足条件,存储一下当前时间,然后允许执行。// 10. 定时器中需要记录定时器执行的时间,节流是,一段时间内多次触发,按时间段执行。// 4. 获取当前时间。..原创 2022-08-08 19:41:38 · 246 阅读 · 0 评论 -
学习一下 常说的防抖
防抖(debounce),防止抖动, 短时间内触发多次,最终只触发一次;例如我有一个输入框,我希望在我键盘停止输入的 500 毫秒之后,可以自动搜索。可以看到在我上面的截图中,我本意是想搜索,但是我的 say 方法,在操作键盘的时候被执行了很多次。(但是我本意只是想,在我停止操作后,执行一次 输出你好)这种时候就可以利用防抖这个概念了。再重温一下,防抖:短时间内触发多次,最终只触发一次; (当我操作键盘,如果 500 毫秒之内多次触发键盘,及重新计时)如果想首次已进入就执行,间隔一段时间后才可以执行?.原创 2022-08-06 21:42:28 · 753 阅读 · 0 评论 -
总结一下 vue2 组件之间的通信
有这么一个场景,组件 A 中有组件 B,组件 B 中有 C。AC 之间通信怎么办?另外说个其他的小 tips。原创 2022-08-04 17:20:00 · 941 阅读 · 0 评论 -
浅读一下dotenv的主干逻辑的源码
- 前面学习了 process.env- 有用到 这么一个插件: `dotenv`- 看一下 `dotenv` 的源码原创 2022-08-02 18:59:49 · 293 阅读 · 0 评论 -
vue项目中的 env文件从何而来?什么是 process.env
模式用于test模式用于production模式用于和二.可以通过--mode指定模式三.不同的环境变量的配置文件.env # 在所有的环境中被载入.env.local # 在所有的环境中被载入,但会被 git 忽略.env.[mode] # 只在指定的模式中被载入.env.[mode].local # 只在指定的模式中被载入,但会被 git 忽略四.在只有NODE_ENV,BASE_URL和以VUE_APP_开头的变量将通过静态地嵌入到客户端侧的代码中。.........原创 2022-08-02 18:55:54 · 5408 阅读 · 0 评论 -
研究一下 JSON.parse(JSON.stringify(obj))
value可以转换对象,也可以转换简单类型的值;replacer有三种情况,函数,数组,空;space如果为字符串,则会直接替换掉空格;个人总结练习//1.1.1转换对象console.log(JSON.stringify({namename"tomato"}'string//1.1.2转换数组console.log(JSON.stringify([1,2,3]),typeofJSON.stringify({name。......原创 2022-07-19 20:06:20 · 5694 阅读 · 0 评论 -
javascript 常用正则记录
1.大于0的正整数原创 2022-06-29 20:25:41 · 216 阅读 · 0 评论 -
不会还有人只会用forEach遍历数组吧?
事情的起因是,很早之前,我老大哥 review 了一下我的代码。看完之后他给我点评了一句。番茄,你写的有关遍历的代码全是 一把梭有一些历史原因吧,反正归根到底就是自己掌握知识不熟练,今天再给自己一个机会,复习一下。基础的 for 循环方式forEach() 方法对数组的每个元素执行一次给定的函数。map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。返回一个新数组,不修改原数组map 函数返回值为: callback 每次执行后的返回值(包括 undefined)组合起原创 2022-06-23 16:47:46 · 354 阅读 · 0 评论 -
探究from表单的身份证号码的校验逻辑 javascript
start最近番茄学习前端八股文,学的有些乏味了。随即在应用商店下载了几个小游戏,准备把玩放松一下。众所周知,现在玩游戏都是要身份证实名认证的,但是我又有精神洁癖,不想把自己的身份证提供给这种小作坊。"输入"一个身份证号码?番茄尝试了很多次,但是它的表单校验却一直无法通过。我很好奇!它这校验咋写的,走我们手撕一个去。目标了解身份证号码的规则编写正则研究一下身份证号码的格式我们的身份证号码是长度为18的字符串,除了最后一位可能为字母x或0-9数字,其他每一位都由0-9数字组成。每原创 2022-05-16 21:09:57 · 1164 阅读 · 0 评论 -
JS 排序
START番茄又来写点啥了,说来有菜,今天遇到一个需求,写个排序,发现自己思路不清晰,尴尬。记录一下常用的排序,首先是会写,其次懂原理,最后要求上手就来。当然我也验证和记录一下啊,今天遇到的,和循环有关的,比较特殊的一些地方。冒泡排序代码 // 我们的目标呢就是对一个数组进行排序 // 1.声明一个数组,这里简便起见呢,我就随便模拟一下数据。 var arr = [1,2,5,3,1,23,5,7,10]; //外层循环,控制比较次数,每一次找到一个最大原创 2022-04-15 16:02:19 · 99 阅读 · 0 评论