- 博客(12)
- 收藏
- 关注
原创 浅谈Object.prototype.toString.call(obj)功能及原理
Object.prototype.toString.call(obj)的功能可能作为程序员以及即将迈入程序员门槛的小伙伴都知道Object.prototype.toString.call(obj)方法,功能简单但是确是类型检测界的“扛把子”。首先来讲,对刚接触的人来说,我们为什么要使用这种奇怪的方法呢?typeof也可以检测类型,然而它有什么优势?我们来引入一道JavaScript的题目来参考...
2020-03-02 22:17:51 47924 9
原创 用 Go 语言实现一个最简单的 gRPC 服务端
本文介绍了如何使用 Go 语言实现一个最简单的 gRPC 服务端。我们首先定义了加法和减法的 gRPC 服务接口,并通过 Protocol Buffers 定义消息结构。接着使用 `protoc` 生成对应的 Go 代码。在服务端代码中,我们实现了 `Add` 和 `Subtract` 方法,并创建 gRPC 服务器监听特定端口。最后,我们展示了如何运行服务并使用 gRPC 客户端工具进行测试。通过这个示例,读者可以了解 gRPC 服务的基本实现流程。
2024-10-10 17:22:03 722
原创 vue3+Ts中grpc-web的代码封装思路
这篇博客介绍了如何在 Vue 3 + TypeScript 项目中封装 gRPC-Web 代码。通过创建 `GrpcClientManager` 和 `GrpcService` 类,简化了 gRPC 客户端的管理和 gRPC 方法调用的逻辑封装。`GrpcClientManager` 提供了单例管理客户端的功能,避免重复实例化客户端。`GrpcService` 封装了通用的 gRPC 调用逻辑,包括动态构造请求对象、处理响应映射等。使得代码更加简洁、可维护。
2024-10-10 17:09:29 2279
原创 基于Vue3+Ts+Vite项目中grpc-Web的应用以及其中的坑
gRPC-Web 是 gRPC 的一个扩展,它允许前端应用(如在浏览器中运行的 JavaScript 应用)通过 gRPC 与后端服务通信。gRPC-Web 作为一种精简的 gRPC 实现,它通常配合一个代理(如 Envoy)使用,将浏览器的 HTTP/1.x 或 HTTP/2 请求转换为标准的 gRPC 格式,然后再发送到后端 gRPC 服务器。
2024-10-10 16:39:50 2229 1
原创 入门指南:使用Puppeteer进行前端自动化测试
Puppeteer是一个基于Node.js的自动化测试工具,由Google开发。它可以模拟人类用户在Chrome或Chromium浏览器中的操作,并捕捉浏览器的屏幕截图、生成PDF和执行表单提交等操作。它还可以在Headless模式下运行,即在没有UI界面的情况下运行浏览器。Mocha是一个JavaScript测试框架,可以用于编写前端和后端测试。它支持多种测试样式,例如BDD(行为驱动开发)和TDD(测试驱动开发),并提供了丰富的API和插件,方便用户进行灵活的测试组织和执行。
2023-04-14 17:51:45 4331 3
原创 前端代码注释规范
注释是一个磨刀不误砍柴工的活,只是顺手的事,自己阅读起来会快;大家都写注释,互相了解起来方便如果真的开发任务很重,可以把握优先级,把核心的注释写好注释写的好,不一定是好程序员,但是注释写的不好,肯定不是好程序员
2023-01-17 12:05:02 1703
原创 vue用watch监听对象,打印oldValue和newValue相同的问题
其实很简单,因为对象指向的是一个对象,对象是引用类型。所以在改了数据之后,oldVal也会随之变化。Vue官方的解释是:在变更(不是替换)对象或数组时,新值与旧值相同,因为他们指向同一数组或对象,Vue不会保留变更前值的副本。
2022-11-09 22:41:19 11903
原创 Table表格文字超出后循环滚动的动画实现方案核心逻辑
table表格内文字超出后,循环滚动的动画实现方案,利用vue和jquery共通实现。递归调用实现动画的循环滚动。
2022-10-31 17:08:58 13366 2
原创 闭包是什么?五分钟带你了解闭包
你可以在一个函数里面嵌套另外一个函数。嵌套(内部)函数对其容器(外部)函数是私有的。它自身也形成了一个闭包。一个闭包是一个可以自己拥有独立的环境与变量的的表达式(通常是函数,因为ES6有了块级作用域的概念)。可以先点击上面链接查看MDN对闭包的讲述。闭包是指有权访问另一个函数作用域中的变量的函数。这样闭包的作用就很明显了可以在函数的外部访问到函数内部的局部变量。让这些变量始终保存在内存中,不会随着函数的结束而自动销毁。
2022-10-18 14:56:45 29378 4
原创 什么是BFC?聊聊BFC及其应用
什么是BFC?BFC的使用场景是什么?BFC解决高度塌陷问题。BFC解决margin重叠问题。BFC原理
2022-10-14 15:04:11 13230 1
原创 浅谈JavaScript中call,apply,bind方法以及它们的适用场景
其实在第一次工作面试中,就被问道了这个问题,这也是一道面试常见题。想起来就抽出时间整理一下它们三个的来历、区别和简单的适用场景吧。正文分割线call、apply、bind方法的由来 在js中,所有的函数都是Function的实例,大家应该都对原型链有所了解,对Function而言,call、apply、bind就是Function.prototype上的方法(原型方法),根据原型链的规则,所有的函数(Function实例)都可以使用它原型链上的方法,因此也就包含了这三个方法。 简单来说:
2020-11-27 14:43:32 29103
原创 记笔记:搞清CommonJS、AMD、CMD、ES6的联系与区别
CommonJS、AMD、CMD、ES6的区别首先我们需要考虑为什么会出现这几种规范?其次我们要考虑模块概念的提出要解决什么问题?然后让我们搞清楚几种规范之间存在的联系和区别 其实,CommonJS规范的提出,主要是为了弥补JavaScript没有标准的缺陷,已达到像Python、Ruby和Java那样具备开发大型应用的基础能力,而不是停留在开发浏览器端小脚本程序的阶段。模块规范主要分为三部分:模块引用、模块定义、模块标识。同时,模块规范很好地解决变量污染问题,每个模块具有独立空间,互不干扰
2020-11-26 15:32:47 31018 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人