JavaScript面试题看这一篇就够了,简单全面一发入魂(持续更新 step1)

2024 前端高频面试题之 JS 篇 ① 所有引用类型都有一个__proto__(隐式原型)属性,属性值是一个普通的对象② 所有函数都有一个prototype(原型)属性,属性值是一个普通的对象③ 所有引用类型的__proto__属性指向它构造函数的prototype当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的prototype,如果还没有找到就会再在构造函数的prototype的__proto__ 阅读详情
AI摘要

本文详细讲解了JavaScript中的DOM与BOM区别,变量作用域的let、const与var,原始值与引用值,执行上下文与垃圾回收机制。此外,还探讨了数组判断、Object与Map的区别,Set、迭代器、生成器和JavaScript继承原理。

1、BOM、DOM有什么区别?

(1)DOM

文档对象模型(DOM,Document Object Model)是一个应用编程接口(API),用于在HTML中使用扩展的HTML。DOM将整个页面抽象为一组分层节点。
DOM通过创建表示文档的树,让开发者可以随心所欲的控制网页的内容和结构。使用DOM API可以轻松地删除、添加、替换、修改节点。
对浏览器而言,DOM就是使用ECMAScript实现的,如今已经成为JavaScript语言的一大组成部分。
言而言之,DOM提供与网页内容交互的方法和接口。

(2)BOM

IE3和Netscape Navigator3提供了浏览器对象模型(BOM)API,用于支持访问和操作浏览器的窗口。使用BOM,开发者可以操控浏览器显示页面之外的部分。
BOM的能力展示:

  1. 弹出新浏览器窗口的能力;
  2. 移动、缩放和关闭浏览器窗口的能力;
  3. navigator对象,提供关于浏览器的详尽信息;
  4. location对象,提供浏览器加载页面的详尽信息;
  5. screen对象,提供关于用户屏幕分辨率的详尽信息;
  6. performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;
  7. 对cookie的支持;
  8. 其它自定义对象,如XMLHttpRequest和IE的ActiveXObject。
    简而言之,BOM提供与浏览器交互的方法和接口。

2、JavaScript中代码后加不加分号;有什么区别?

  1. 加分号有助于防止省略造成的问题
  2. 避免输入内容不完整
  3. 便于开发者通过删除空行来压缩代码(如果没有结尾的分号,只删除空行,则会导致语法错误)
  4. 加分号有助于提升性性能,因为解析器会尝试在合适的位置补上分号以纠正语法错误。

3、var与let、const有什么区别?

  1. let不具备声明提升,var具备声明提升
  2. let声明的范围是块作用域,而var声明的范围是函数作用域。
  3. let是ES6才引入的声明关键字
  4. for循环中的let声明
  5. const与let很相似,最大的区别是const必须初始化,且不能再次赋值。

结语:

  1. 不使用var,有了let和const,大多数开发者会发现自己不再需要var了,限制自己只使用let和const,有助于提升代码质量,因为变量有了明确的作用域、声明位置、以及不变的值。
  2. const优先,let次之。使用const声明可以让浏览器运行时强制保持变量不变,也可以让静态代码分析工具提前发现不合法的赋值操作。

4、原始值和引用值有什么区别?

  1. 原始值大小固定,保存在栈内存中
  2. 从一个变量到另一个变量复制原始值,会创建该值得第二个副本
  3. 引用值是对象,存储在堆内存中
  4. 包含引用值的变量实际上只包含指向相应对象的一个指针,而不是对象本身
  5. 从一个变量到另一个变量复制引用值,只会复制指针,因此结果是两个变量都指向同一个对象
  6. typeof操作费可以确定值的原始类型,instanceof操作符用于确保值得引用类型

5、什么是执行上下文?

任何变量都存在于某个执行上下文中(也称为作用域)。这个上下文(作用域)决定了变量的生命周期,以及它们可以访问代码的哪些部分。
执行上下文可以总结如下:

  1. 执行上下文分为 ① 全局上下文、② 函数上下文、③ 块级上下文
  2. 代码执行流每进入一个新上下文,都会创建一个作用域链,用于搜索变量和函数
  3. 函数或块的局部上下文不仅可以访问自己作用域内的变量,也可以访问任何包含上下文乃至全局上下文的变量
  4. 全局上下文只能访问全局上下文中的变量和函数,不能直接访问局部上下文中的任何数据
  5. 变量的执行上下文用于确定什么时候释放内存

6、解释一下JavaScript垃圾回收?

JavaScript是使用垃圾回收的编程语言,开发者不需要操心内存分配和回收。

  1. 离开作用域的值会被自动标记为可回收,然后在垃圾回收期间被删除
  2. 主流的垃圾回收算法是标记算法,即先给当前不使用的值加上标记,再回来回收它们的内存
  3. 引用计数是另一种垃圾回收策略,需要记录值被引用了多少次。JavaScript引擎不再使用这种算法,但某些旧版本的IE仍然会受这种算法的影响,原因是JavaScript会访问非原生JavaScript对象(如DOM对象)。
  4. 引用计数在代码中循环引用时会出现问题
  5. 解除变量的引用不仅可以消除循环引用,而且对垃圾回收也有帮助。为促进内存回收,全局对象、全局对象的属性和循环引用都应该在不需要时解除引用。

7、如何判断一个对象是不是数组?

在只有一个全局作用域的时候,使用instanceof操作符就足矣:

if(value instanceof Array){
	//操作数组
}

使用instanceof的前提是只有一个全局执行上下文,如果网页里有多个框架,则可能涉及两个不同的全局上下文,因此就会有两个不同版本的Array构造函数。如果要把数组从一个框架传到另一个框架,则这个数组的构造函数将有别于第二个框架内本地创建的数组。
为了解决这个问题,ECMAScript提供了 Array.isArray()方法。这个方法的目的就是确定一个值是否为数组,而不用管它是在哪个全局执行上下文中创建的。

if(Array.isArray(value)){
	//操作数组
}

8、Object和Map到底有什么区别?

(1)内存占用

给定固定大小内存的情况下,Map一般会比Object多存储50%的键值对。

(2)插入性能

插入Map一般会稍微快一点。

(3)查找速度

相差无几。

(4)删除性能

Map的删除性能完胜Object。
综上四点,选择Map显然是更好地选择。

9、简述一下什么是Set?

(1)基础API

  1. 添加add()
  2. 查询has()
  3. 获取数量size
  4. 删除delete()
  5. 清空clear()

(2)顺序与迭代

Set会维护值插入时的顺序,因此支持按顺序迭代。
集合实例可以提供一个迭代器Iterator,能以插入顺序生成集合内容。可以通过values()方法及其别名方法keys(),或者Symbol.iterator属性,他引用values(),取得这个迭代器。

const s = new Set("哪吒","云韵","比比东");

alert(s.keys === s[Symbol.iterator]);//true
alert(s.values === s[Symbol.iterator]);//true

for(let value of s.values()){

}

for(let value of s[Symbol.iterator]){

}

因为values()是默认迭代器,所以可以直接对集合实例使用扩展操作,把集合转为数组:

const s = new Set("哪吒","云韵","比比东");
console.log([...s]);//["哪吒","云韵","比比东"]

10、什么是迭代器?

迭代器是一个可以由任意对象实现的接口,支持连续获取对象产出的每一个值。任何实现Iterable接口的对象都有一个Symbol.iterator属性,这个属性引用默认迭代器。默认迭代器就像一个迭代器工厂,也就是一个函数,调用之后会产生一个实现Iterator接口的对象。
迭代器必须通过连续调用next()方法才能连续获取值,这个方法返回一个IteratorObject。这个对象包含一个done属性和一个value属性。前者时刻一个布尔值,表示十分还有更多值可以访问;后者包含迭代器返回的当前值。这个接口可以通过手动反复调用next()方法来消费,也可以通过原生消费者,比如for循环来自动消费。

11、什么是生成器?

生成器是ECMAScript6新增的一个极为灵活的结构,拥有在一个函数块内暂停和恢复代码执行的能力。这种新能力具有较深远的影响,比如,使用生成器可以自定义迭代器和实现协程。
生成器的形式是一个函数,函数名称前面加一个星号*,表示它是一个生成器。只要是可以定义函数的地方,就可以定义生成器。
调用生成器函数会产生一个生成器对象,生成器对象一开始处于暂停执行(suspended)状态。与迭代器相似,生成器对象也实现了Iterator接口,因此具有next()方法。调用这个方法会让生成器开始或恢复执行。
next()方法的返回值类似于迭代器,有一个done属性和一个value属性。函数体为空的生成器函数中间不会停留,调用一次next()就会让生成器到达done:true状态。

12、JavaScript的继承是通过什么方式实现的?(问法2:什么是原型链?问法3:构造函数、原型、实例三者的关系?)

ECMA-262把原型链定义为ECMAScript的主要继承方式。其基本思想就是通过原型继承多个引用类型的属性和方法。
每个构造函数都有一个原型对象,原型有一个属性指回构造函数,而实例有一个内部指针指向原型。如果原型是另一个类型的实例呢?那就意味着这个原型本身有一个内部指针指向另一个原型,相应地另一个原型也有一个指针指向另一个构造函数,这样就在实例和原型之间构造了一条原型链。

13、以下表达式,对吗?为什么?

console.log(sum(1,2));
function sum(num1,num2){
    return num1+num2;
}

JavaScript引擎在任何代码执行之前,会先读取函数声明,并在执行上下文中生成函数定义。而函数表达式必须等到代码执行到它那一行,才会在执行上下文中生成函数定义。
所以,以上代码是可以正常运行的,因为函数声明会在任何代码执行之前先被读取并添加到执行上下文,这个过程叫做函数声明提升。
在执行代码时,JavaScript引擎会先执行一遍扫描,把发现的函数声明提升到源代码树的顶部。因此即使函数定义出现在它们的代码之后,引擎也会把函数声明提升到顶部。
如果把前面代码中的函数声明改为等价的函数表达式,那么执行的时候就会出错。

console.log(sum(1,2));
let sum = function sum(num1,num2){
    return num1+num2;
}

14、apply()和call()有什么区别?

这两个方法都会以制定的this值来调用函数,即会设置调用函数时函数体内的this对象的值。
apply()接收两个参数,函数体this的值和一个参数数组。第二个对象是Array的实例,也可以是arguments对象。
call()和apply()的作用是一样的,只是传入参数的形式不一样。call()传入的不是数组或arguments对象,而是将参数一个一个的传入。
apply()和call()真正的用处不在于传递参数,而在于控制this。

  window.color = 'red';
  let o = {
    color:'blue';
  }
  
  function getColor(){
    console.log(this.color);
  }
  
  getColor(); //red
  getColor().call(this);//red
  getColor().call(window);//red
  getColor().call(o);//blue

15、函数声明和函数表达式有什么区别?

函数声明是这样的:

  function functionNam(arg0,arg1,arg2){
    //函数体
  }

函数式声明的关键特点是函数声明提升,即函数声明会在代码执行前获得定义。
函数表达式是什么?

  let functionName = function(arg0.arg1,arg2){
    //函数体
  }

函数表达式看起来就像一个普通的变量定义和赋值,即创建一个函数再把它赋值给一个变量functionName。这样创建的函数叫做匿名函数,因为function关键字后面没有标识符。匿名函数有时也被成为兰姆达函数。
函数表达式和其他表达式一样,需要先赋值再使用,所以如下代码就是错误的。

  sayHello();
  let sayHello = function(){
    console.log("hello world");
  }

函数声明和函数表达式的根本区别在于理解提升。

16、关注公众号哪吒编程,回复1024,获取Java学习资料,还有不定期的送书活动

  1. 极简Java
  2. Node+MongoDB+React 项目实战开发
  3. 微信小程序开发从入门到实战
  4. C++从入门到精通

在这里插入图片描述

🍅 作者简介:哪吒,优快云2021博客之星亚军🏆、新星计划导师✌、博客专家💪

🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师

🍅 关注公众号【哪吒编程】,回复1024,获取Java学习路线思维导图、大厂面试真题、加入万粉计划交流群、一起学习进步


下一篇:Vue基础知识总结 1:Vue入门

在这里插入图片描述

2024前端面试(JS专题) 一般比较大一点的公司面试或笔试问题的重点都侧重于js这块,考验你js的功底扎不扎实。所以在准备面试的时候,js一定要复习好,而且要过好几遍,直至熟练回答为止,有的甚至需要手写几遍。毕竟机会都是给有准备的人的。下面给大家整理了一下面试中常问的js问题。大家可以查缺补漏。 阅读详情

相关推荐

91道JavaScript面试题,内含详细讲解(涵盖入门到精通,自测JS掌握程度)

技术栈比较搭,基本用过的东西都是一模一样的。快手终面喜欢问智力题,校招也是终面问智力题,大家要准备一下一些经典智力题。如果排列组合、概率论这些基础忘了,建议回去补一下。k对项目进行优化?防抖、节流浏览器的缓存机制描述一下二叉树, 并说明二叉树的几种遍历方式?项目类问题技术栈比较搭,基本用过的东西都是一模一样的。快手终面喜欢问智力题,校招也是终面问智力题,大家要准备一下一些经典智力题。如果排列组合、概率论这些基础忘了,建议回去补一下。

2401_84447262的博客 1374

js二十五道面试题(含答案)

目录 1.线程和进程是什么?举例说明 2. js中的基础数据类型有哪几种? 了解包装对象吗? 3.对内存泄漏的了解 4.js中数组合并的方法 5.合并对象的方法 6.什么是作用域,什么是作用域链? 7.JS如何实现异步编程(5种)? 8.js中的堆内存与栈内存 9.如何去判断js数据类型? 10,怎么允许跨域(跨域解决办法) C、Nginx反向代理 D、webpack (在vue.config.js文件中)中 配置webpack-dev-server 11.怎么让对象的一个..

m0_65450343的博客 4万+

前端面试套餐:Vue面试题总结+JavaScript前端经典面试题+100道 CSS 面试题

前言 在逛技术网站时,在一篇文章下面看到了一条评论,这条评论仁者见仁智者见智。我单独放出来说,是因为他讲到了基础。基础是重要的一个学习环节,在面试中很多问题都不难,都是基础上内容,回不回的上就看你基础掌握的怎样了,面试官也从中知道你学的怎样。 评论 我因为学习兴趣浓,从测试到java到前端一路学过来,现在就处于什么都懂,什么都半桶水的尴尬局面。我因为喜欢前端界面而渐渐的专注于前端。广和精,这一对矛盾又统一的兄弟,在前端折腾死了很多人,我面试过的一些公司,一些说你深度不够,一些说你太过狭隘,聊下来我就想打人。

weixin_52546522的博客 1万+

js经典面试题及答案汇总(持续更新)

js经典面试题及答案汇总(持续更新)

Jadon_z的个人博客 7839

前端_面试题(持续更新中)

本文系统整理了前端开发常见面试题,涵盖HTML、CSS、Vue、路由和JavaScript五大模块。HTML部分详解了元素分类、H5新特性和存储方案;CSS部分包含新特性、样式隔离和布局定位;Vue部分重点剖析了MVVM原理、生命周期、组件通信和性能优化;路由部分对比了两种模式及传参方式;JavaScript部分区分了变量声明、异步请求和性能优化策略。全文采用问答形式,既包含基础概念解析,又提供实际应用场景,帮助开发者全面掌握前端核心知识体系,特别适合面试复习和技术查漏补缺。

Rainbow_bead的博客 4155

前端面试题(附答案)持续更新中……

关于前端面试的题,这里整理了一些干货,经常被问到的一些问题,出现频率比较高的问题,如有不足之处,请大家指出,持续更新…(ps一到三颗代表重要性,选择性了解,掌握,前端需要知道的知识)盒模型由内容(content)、内边距(padding)、边框(border)、外边距(margin)组成。盒模型分为IE盒模型和W3C标准盒模型。W3C标准盒模型又叫content-box,元素宽度/高度由border+padding+content组成。(属性width,height只包含内容content,...

m0_55070913的博客 4527

JavaScript面试题看这一篇就够了,简单全面一发入魂(持续更新 step2)

1、如何解决循环中动态添加div,造成的死循环问题? 表达式①: let divs = document.getElementsByTagName("div"); for(let i = 0;i<divs.length;++i){ let div = document.createElement("div"); document.body.appendChild(div); } 表达式②: let divs = document.getElementsByTagName("div"); for(

学Java,找哪吒 7235

2024前端面试题汇总(持续更新中)

最近一段时间面试才发现真的不背八股文是不得行啊,项目中知道怎么使用怎么写,但是当面试官问你具体含义时,完全是懵的状态,趁着有空刚好总结一下,后续还会继续更新哦。

qq_53541336的博客 1万+

HTML5 面试题大全(持续更新) 看这一篇就够了

HTML5 经典面试题 1.请描述一个网页从开始请求到最终显示的完整过程? 一个网页从请求到最终显示的完整过程一般可分为如下7个步骤 : 在浏览器中输入网址 发送至DNS服务器并获得域名对应的web服务器的IP地址 与web服务器建立TCP连接 浏览器向web服务器的IP地址发送相应的HTTP请求 web服务器响应请求并返回指定URL的数据,或错误信息,如果设定重定向,则重定向到新的URL地址 ...

Hassan的小博客! 7315

Js面试题(总结)持续取经更新……

1、面向对象的特征有哪些方面 --抽象:抽象是将一类对象的共同特征总结沟造出来的过程,包括数据抽象和行为抽象两方面,抽象只关注对象有哪些行为或者属性,并不关注这些行为的细节是什么。 --继承:继承是从已有类型得到继承信息创建新类的过程,提供继承的类叫父类(超类,基类)、得到继承的类叫子类(派生类) --封装:通常认为封装是把数据的操作和操作数据的方法绑定起来,对数据的访问只能童工已经定义的接口,可以说封装就是隐藏一切可以隐藏的东西,只向外界提供最简单的编程接口。举例:可以想想普通洗衣机和全自动洗衣机的

m0_67387108的博客 3979

一个游戏前端的 js 面试题(持续更新中)

按照自认为命中率由高到低的顺序排序 内容掺杂个人理解方式,表达方式 官方解释资料均来自于 MDN Web Docs 内容如有何不妥,欢迎大家批评指正,经过考究后及时更新 1.闭包? 官方解释: 一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。 其他处解释(网

一个游戏前端的成长现场 1099

2024最新最全的前端面试题集锦(2024 持续更新中...敬请关注)

工作以来,感觉自己接触到的东西还是挺多的,但是当我面试的时候,就会发现各种问题,很多知识点都是模棱两可,答得不全面。究其原因,还是没有吃透这些内容。所以我决定,用几个月的时间,将我们大前端的大部分精选面试题进行整理,将大部分知识点进行归纳总结,为自己也为其他小伙伴们提供一份面试学习参考。

XH_jing的博客 2万+

前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新

文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序。 并有热点框架(vue react node.js 全栈)前端资源以及后端视频资源和源码 并基于前端进阶和面试的需求 总结了常用插件和js算法 以及html/css和js热点面试题 因为csdn不可以有外链 所以答案链接在评论区!!! Vue面试题 生命周期函数面试题 1.什么是...

MingL520的博客 8万+

JS的100道经典面试题(一)只看这四篇就够了,收藏起来以后偷偷看

年轻人你不讲武德,耗子尾汁~~~ 总结就是为了形成自己的js知识网,提升自己,加油! 开始干 1、介绍js的基本数据类型   答: Undefined、Null、Boolean、Number、String 2、js有哪些内置对象?  答:数据封装类对象:Object、Array、Boolean、Number 和 String   其他对象:Function、Arguments、Math、Date、RegExp、Error    3、this对象的理解  答:this总是指向函数的直接调用者(而非间接调用者

见贤思齐焉,见不贤内自省 1万+

10BASE-T1S协议中的PLCA机制:实现无碰撞网络传输的关键

本文深入解析了10BASE-T1S协议中的PLCA(物理层冲突避免)机制。作为IEEE 802.3cg标准的关键部分,PLCA通过循环调度与机会传递,从根源上避免了网络碰撞,为工业与汽车等场景提供了确定性的低延迟传输保障,是实现可靠实时通信的核心技术。

weixin_29250403的博客 209

君正T31x metartc集成测试

metartc为国内杨大侠部分开源的一款用于嵌入式领域webrtc库,它与谷歌官方webrtc相比,编译到君正平台的可执行文件仅有5M即可实现webrtc的通信。1. 目前实现的是基于开源版v5.0-b0版本做的简单修改,官方的好几个版本都多少缺点东西,我这里给整理了一下。目前是局域网连接的webrtc,后续尝试走stun和turn试一下NAT穿越的效果。

fsmpeg的博客 3153

javascript面试题--持续更新

事件代理(),又称之为事件委托。是JavaScript中常用绑定事件的常用技巧。顾名思义,“事件代理”即是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡。使用事件代理的好处是可以提高性能可以大量节省内存占用,减少事件注册,比如在table上代理所有td的click事件就非常棒可以实现当新增子对象时无需再次对其绑定。

jyl919221lc的博客 4738

Nvivo12新手避坑指南:从安装到编码的完整流程(附实战案例)

本文为Nvivo12新手提供了从软件安装、初始设置到数据导入和编码分析的完整避坑指南。通过一个“校园欺凌现象的学生访谈研究”实战案例,详细拆解了处理中文文本、创建项目结构、执行手动编码及高级查询等关键步骤,帮助研究者避开常见错误,快速上手并高效完成质性数据分析。

resnet7explorer的博客 315

JavaScript面试题看这一篇就够了(持续更新......)

JavaScript经典面试题 1.简要描述 JS 的数据类型? 答案:JavaScript 的数据类型可分为原始数据类型和引用数据类型。 原始数据类型:String(字符串)、Number(数字)、Boolean(布尔)、Null(空)、Undefined(未定义) 引用数据类型:Array(数组)、Object(对象)、Function(函数) 2.看代码,写出结果 var a = []; ...

Hassan的小博客! 861

ai获客系统功能代码

AI 获客系统是一个复杂的体系,以下为你提供一个简化的 Python 示例,聚焦于客户行为分析与销售线索筛选功能,模拟实现从多渠道收集数据后的初步处理流程。假设已有从官网、线上商城等渠道收集到的客户数据,以字典列表形式存储,每个字典包含客户基本信息及购买行为数据。通过分析客户购买频率与金额,筛选出高价值销售线索。python上述代码仅为基础示例,实际 AI 获客系统还涉及更复杂的数据采集、清洗、存储,以及运用机器学习算法进行深度客户洞察等功能。

weixin_ggwwsscc的博客 889

playwright-mcp 安装使用的详细教程

Playwright MCP 快速入门指南 Playwright MCP Server 是由微软开发的浏览器自动化服务,通过 MCP 协议为 AI/Agent/LLM 提供网页交互能力。它基于可访问性树而非屏幕截图,支持多种浏览器和运行模式。 安装要求: Node.js v18+ 命令行操作能力 支持 MCP 的客户端 安装方式: 通过 npx 快速启动:npx @playwright/mcp@latest 项目依赖安装:npm install @playwright/mcp 主要特性: 支持 Chrome

上善若水 7967

2022年最新前端面试题,持续更新

2022年最新前端面试题 适合初/中级前端开发工程师

qq_45165744的博客 6万+

YOLO11改进策略【独家融合改进】| RCSOSA + SPD + WFU

SPD-Conv是一种新的 CNN 构建模块,用于替代传统 CNN 架构中使用的步长卷积(strided convolution)和池化(pooling)层,它由空间到深度(Space-to-depth,SPD)层和非步长卷积(non - strided convolution)层组成。WFU模块通过小波变换的频率分解与跨尺度融合机制,解决了传统上采样过程中的混叠和细节丢失问题,实现了高效、高保真的面部细节重建。

Limiiiing的博客 444

JS2023年面试题汇总~~~~持续更新中!!!!

这里总结的所有面试题都是从牛客网找的各种大厂真实场景的面试题,并且做了汇总,各位看官看后做好总结,绝对可以应对90%JS相关的面试题。

weixin_46369590的博客 3435

【AI智能体】Dify 搭建发票识别助手操作实战详解

Dify 搭建发票识别专属助手操作实战详解

congge 5548

探索gtwr of mgtwr in python

代码】探索gtwr of GWmodel in python。

m0_46268055的博客 3388
上一篇: 比SQL还好用,又一门国产数据库语言诞生了
下一篇: 精通JavaScript?关于JavaScript的内存与性能问题,你又了解多少呢?
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2933原创
评论 24
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值