标签:js
【Web开发】Python实现Web服务器(Flask测试后台框架模板)
,提示:Flask是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。,Flask是一个轻量级的可定制框架,使...
《 合 成 大 西 瓜 》 重 制 版 !( 联 机 版 在 做 了 )
夏天又到啦,又到了吃西瓜的季节!怎么能少了《合成大西瓜》这款又好玩又解压的小游戏呢?,2021年,这款游戏风靡一时。,2022年,我HullQin(点开可关注我)自...
[Go WebSocket] 你的第一个Go WebSocket服务: echo server
上篇文章:《为什么我选用Go重构Python版本的WebSocket服务?》,介绍了我的目标。,从这篇文章开始,我们进入实战,正式介绍Go WebSocket框架。,建议你花1天...
【Web开发】Python实现Web服务器(Flask测试统计图表)
,提示:Flask是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。,Flask是一个使用 Python 编写的轻量...
[JS入门到进阶] 手写解析URL参数的工具,并部署。用起来又快又爽!
针对上文第一个场景,我们更常见的做法是,搜索「URL解析」,然后找到网上免费的工具,输入URL,能把参数都告诉我,还能帮我decode参数,非常方便。,但是这是...
原生拖拽太拉跨了,纯JS自己手写一个拖拽效果,纵享丝滑
提到元素拖拽,通常都会先想到用 HTML5 的拖拽放置 (Drag 和 Drop) 来实现,它提供了一套完整的事件机制,看起来似乎是首选的解决方案,但实际却不是那么美...
【Java Web】 JS 中的 DOM API
(目录),,Web api文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Document_Object_Model/Introduction,JS 分成三个大的部分:,学习了上述 JS 语法,...
[教你做小游戏] 滑动选中!PC端+移动端适配!完美用户体验!斗地主手牌交互示范
之前我们提到了斗地主的最优秀的交互方案:《斗地主的手牌,如何布局?看25万粉游戏区UP主怎么说》。,具体交互如下:,PC端:,移动端:,今天,我们聊一下,如...
[JS入门到进阶] 手写解析uin8数组的工具:解析二进制字节,太快太方便了!
我常常需要处理二进制数据,每次面对一堆二进制数据,需要自己逐个字节转换为二进制、十六进制,去阅读和理解,去排查问题。,举个例子:有一个场景是我的《我...
JavaScript 为什么要进行变量提升,它导致了什么问题?
前言 欢迎关注 『前端进阶圈』 公众号 ,一起探索学习前端技术...... 前端小菜鸡一枚,分享的文章纯属个人见解,若有不正确或可待讨论点可随意评论,与...
[教你做小游戏] 用86行代码写一个联机五子棋WebSocket后端
上篇文章《用177行代码写个体验超好的五子棋》,我们一起用177行代码实现了一个本地对战的五子棋游戏。,现在,如果我们要做一个联机五子棋,怎么办呢?,首先...
[JS入门到进阶] 手写裁剪图片的工具,并部署。一键裁剪51CTO文章封面
裁剪图片,一个超级常用的功能!,我个人非常喜欢Windows的「画图」工具。这款工具我小学二年级时非常喜欢玩。长大后,也对它爱不释手。因为「画图」占用内存...
有趣的 Async hooks 模块
在 Node.js 中,Async hooks 是一个非常有意思且强大的模块(虽然性能上存在一些问题),在 APM 中,我们可以借助这个模块做很多事情。本文介绍两个有趣的用...
安卓调用 Js 函数计算高度
要在安卓应用程序中调用 JavaScript 函数来计算高度,您可以使用 Android 的 WebView 组件。WebView 允许您在应用程序中显示网页内容,并与 JavaScript 进行...
React API 和代码重用的演变!
本文将探究 React API 的演变及其背后的心智模型。从 mixins 到 hooks,再到 RSCs,了解整个过程中的权衡。我们将对 React 的过去、现在和未来有一个更清晰的...
如何用Three.js + Blender打造一个web 3D展览馆
,3D展览馆是什么,先来预览下效果:,,看起来像个3D冒险类手游,用户可以操纵屏幕中央的虚拟摇杆,以第一人称视角在房间内自由移动、看展览。,首先介绍一个背...
前端新人入职必备清单,保姆级教程!
,,通常我们的项目都是依赖Node.js 环境的,所以第一步就来安装 Node.js。,打开 Node.js 官网(https://nodejs.org/en),其会自动识别当前的操作系统l类型,...
Node.js HTTP 模块的内存泄露问题
很久没有逛社区了,晚上回来看了一下最近的情况,突然看到一个内存泄露问题,作为一个 APM 开发者,自然想分析其中的原因。,下面介绍一下具体的问题。看一下 ...
探索 Node.js v20 功能的实际应用
原文地址:https://blog.logrocket.com/exploring-node-js-v20-features/,翻译:一川,Node.js的每个版本都带有令人兴奋的新功能,v20也不例外。Node.js v20&n...
前端面试:异步加载和延迟加载的理解?
,异步加载和延迟加载是前端优化网站性能的两种方法。,异步加载的方案:,动态插入script标签,通过ajax去获取js代码,然后通过eval执行,script标签上添加defer或...
九个超级有用的 Javascript 技巧
在实际的开发工作过程中,我积累了一些常用的、超级有用的Javascript技巧和代码片段,包括其他大神编译的JS使用技巧。,,今天这篇文章,我认真筛选了9个我认为...
前端常见问题分析,你学会了吗?
在前端开发过程中,常常遇到各种各样的问题和坑点。尤其是随着技术的不断发展和更新,新的问题也不断涌现。对于初学者而言,这些问题往往让人感到十分困惑和...
如此多的 JavaScript 框架,哪个最快?
大家好,我是 CUGGZ,祝大家端午节快乐~,JavaScript 框架数量众多,那究竟哪个框架速度更快呢?今天就来分享一个开源的 JavaScript 框架性能基准工具:...
Node.js包和模块的关系是怎样的?
在Node.js 中,会将某个独立的功能封装起来,用于发布、更新、依赖管理和进行版本控制。Nodejs 根据CommonJS规范实现了包机制,开发了NPM包管理工具,用来解...
高中生打破React性能极限,将React性能提升70%!
React 是当今最受欢迎的 JavaScript 框架之一,它的创新之一就是引入了虚拟 DOM,但很多现代框架已经不再采用这种方案,其在某些情况下会影响应用的性能。Sve...
一起聊一聊如何计算 Node.js GC 负载
,在 Node.js 中,我们关注的比较的是 CPU 负载,但是在有 GC 的语言中,GC 负载也是需要关注的一个指标,因为 GC 过高会影响我们应用的性能。本文介绍关于 GC...
哇塞!居然用这个框架开发了一款这么好用的 Markdown 编辑器
今天,我们来使用Strve.js来搭建一款 Markdown 编辑器,没错!你没听错。我们需要创建了一个实时 Markdown 编辑器,用户可以在 textarea 中输入 Markdown 文...
将 Node.js 应用程序容器化的七种方法
本文列出了七种容器化 Node.js 应用程序的方法,让我们简要地看一下它们。,在过去的五年里,Node.js 一直是严肃程序员的最爱。最大吞吐量的 JavaScript 运行...
Stack Overflow 2023 开发者调查报告重磅发布,Rust 成为最受推崇的语言!
6 月 15 日,程序员社区 Stack Overflow 正式发布了 2023 年度的开发者调查报告——《2023 Developer Survey》,全球超过 90000 名开发者参与了此次调查。今年...
发布关于Strve.js的动态,被Vite团队核心成员点赞的那些事!
,近日,在浏览之前发的推特文章时,发现了曾经被Vite团队核心成员 Matias Capeletto 点赞的一篇动态,心里格外的高兴。,,,,,,,被大佬认可,也是值得开心的一...
Nuxt.js 官方开源的三个基于Nuxt + Vue的实战项目!
今天来分享 Nuxt.js 官方开源的 3 个基于 Nuxt + Vue 的实战项目!这些项目可以帮助我们更好地理解和掌握 Nuxt 和 Vue 的概念、编写更优雅的代码。,Nuxt Movi...
如何基于 Napi-rs 打造 Rust 前端工具链?
,大家好,我是三元同学。,我们知道,随着 SWC、Rspack 等 Rust 前端工具链的出现,Rust 逐渐成为了前端基建的重要一环。作为一门系统级别的语言,Rust 可以编...
面试率超高的JS错误处理,看这篇就够了!
本文将带你了解 JavaScript 中常见的错误类型,处理同步和异步 JavaScript/Node.js 代码中错误和异常的方式,以及错误处理最佳实践!,JavaScript 中的错误是...
js生成器中next的使用
,说明,1、生成器函数的外部可以向next方法传达参数,该参数作为上一个yield表现的返回值。,2、如果不传递参数,yield表达式返回undefined。,实例,以上就是js...
js中AMD和CMD的区别
,说明,1、对于依赖模块,AMD提前执行,CMD延迟执行。,然而,RequireJS从2.0开始,也改为可延迟执行(根据不同的写法和不同的处理方法)。CMD高度赞扬aslazyaspo...
js函数声明的2种方式
,1、使用函数关键字自定义函数(命名函数),function声明函数的关键字,必须全部小写。,2、函数表达式声明类似于一个声明变量,除了在变量中保留值外,还有在函...
js中join()方法的使用
,说明,1、join方法能把数组序列转换为字符串, join方法后面可以跟match方法进行模式匹配。,2、返回值为一个字符串。元素是通过指定的分隔符进行分隔的。,实例...
js迭代器模式是什么
,说明,1、提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示,2、可分为:内部迭代器和外部迭代器,内部迭代器: 内部已经定义好迭代...
Node.js中的事件循环是如何工作的
译者 | 卢鑫旺,当我们启动一个Node.js应用程序时,它会加载事件循环并将必要的回调函数添加到回调栈中。在本文中,你将详细了解Node.js中的事件循环是如何工...
JS 中的类数组对象如何转换为数组?
大家好,我是前端西瓜哥,今天说一下 JS 的类数组对象是什么,以及如何将类数组对象转为数组。,类数组对象,就是含有 length 属性的对象,但这个对象不是数组...
从这个API能看到整个前端的缩影
,大家好,我卡颂。,如果要从JS中找一个API作为整个前端的缩影,ESM规范中的import再合适不过了。,本文我们从这个API出发,来聊聊web的发展。,在所有JS运行时...
前端常用的数据可视化工具库
D3(Data-Driven Documents 或 D3.js)是一个 JavaScript 库,用于使用 Web 标准将数据可视化。D3 可以使用SVG、 Canvas 和 HTML 将数据变为现实。D3 将强大...
2023 年值得关注的10大 Node.js 开源项目!
大家好,我是 CUGGZ。,Node.js 是一个开源的 JavaScript 运行环境,已经成为最流行的应用开发平台之一。随着 Node.js 使用率的迅速上升,开发人员不断突破该...
js外观模式的介绍
,说明,1、为一组复杂的子系统接口提供一个更高级的统一接口,通过这个接口使得对子系统接口的访问更容易,不符合单一职责原则和开放封闭原则。,2、外观模式的...
盘点 Vue.js 那些有趣的版本名称!
,大家好,我是 CUGGZ。,Vue.js 是一套用于构建用户界面的渐进式 JavaScript 框架。它是尤雨溪在2013年开发出来的,最初命名为 Seed,于2014年正式开源。如今...
Rollup打包入门到实践,你学会几分?
rollup在业务中基本很少会有接触到,通常在我们的业务中大部分接触的脚手架,或者自己搭建项目中,我们都是用webpack,无论是vue-cli,还是react-create-app...
js观察者模式是什么
,说明,1、定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。,2、包括,Subject:主体对象(状态发布者),维...
js中do-while语句是什么
,1、do-while语句是一种后测试循环语句,即循环体中的代码执行后才会对退出条件进行求值。,2、循环体内的代码至少执行一次。do-while的语法如下:,下面是一个...
JS结合Canvas制作水印添加器小工具
想了解更多关于开源的内容,请访问:,51CTO 开源基础软件社区,https://ost.51cto.com,随着搬运工的逐渐增加,原创作者的利益收到了极大的影...
js函数中参数的使用
,说明,1、函数内的某些值不能固定,我们可以通过参数在调用函数时传递不同的值。,2、多个参数之间用逗号分隔,形式参数可以看作是无声明的变量。,在JavaScrip...
js中有哪些书写位置
,1、将js代码写到标签的onclick属性中。,js代码可以写入标签的onclick属性中,当我们点击按钮时,js代码才会被执行,但是这种方式属于结构和行为耦合,不方便...
项目稳定性治理思考:防御性CSS技能
防御性CSS,防的是谁?我把他总结为:一切使表现和行为偏离预期效果的情景。出现这些场景的原因是因为终端环境的多样化,开发及测试用例只能覆盖大多数使用场...
js一维数组如何访问
,1、访问数组就是访问数组元素。可以使用数组名[下标表达式] 的形式来进行访问,读写数组。,2、下标表达式是值为非负整数的表达式。,例如上文中的,就是使用de...
聊聊 JS 断点的实现
断点的实现非常复杂,这里并不是说要长篇大论讲解 JS 断点在 V8 中是如何实现的,而是想从宏观上聊一下断点的实现。这个问题来源于最近和同事讨论的关于 V8 I...
12 个你可能从未使用过的有用的 JavaScript 库
JavaScript 在不断发展,几乎每天都有新库出来,或者扩展旧库以支持新功能。因此,我们现在拥有数千个 JavaScript 库。并非所有这些都对一般 Web 开发人员有...
js中arguments的使用
,说明,1、当不确定传递了多少参数时,可以使用arguments来获取。在JavaScript中,arguments实际上是当前函数的内置对象。,所有函数都内置了一个arguments对象...
js中caller是什么意思
,说明,1、caller是函数对象的一个属性,它指向调用当前函数的函数,例如A调用B,B.caller指向A()。,2、在全局范围内调用当前函数,caller值为null。,语法,fun...
如何以失败驱动开发?
作者 | 马大伟,,多年以后,面对这篇文章,我会想起那两天失败的令人崩溃的开发过程。当时,只是一个简单的编码需求,我信心满满的计划一下午...
js中replaceAll方法的实现
,说明,1、replaceAll()可以一次性替换所有匹配。同replace()一样,该方法接收两个参数。,第一个参数为RegExp对象或一个字符串(要替换的字符),第二个参数可以...
2023 年八大 Web 开发趋势预测!
大家好,我是 CUGGZ。开工第一天,祝大家开工大吉,事业新启,前兔无量!,本文将分享通过 State of JS 2022 调查结果 总结的 2023 年 8 大 Web 发...
js中repeat()的使用
,1、返回一个新字符串,表示将原字符串重复n次。如果参数为小数,则会被取整。,2、如果为负数或者Infinity,会报错。 ,3、如果参数是0到-1之间的小数或者NaN...
js浮点数精度丢失的问题及解决
,说明,1、在数学计算中,小数会有一定的误差,这是计算机本身的bug,不仅是js语言,其他语言也有这个问题。,2、解决方案,不要让两个小数比较大小,一般不会...
React开发者们的Solid.js快速入门教程
,在 2021 年的 JavaScript 调查问卷中,黑马 Solid.js 一骑当先登上榜首,在用户满意度的评分上连超两大竞争对手,React 和 Svelte。虽然 React 仍有着不错的...
CSS-in-JS 的库是如何工作的?
,笔者近期学习 Material UI 的过程中,发现 Material UI 的组件都是使用 CSS-in-JS 的方式编写的,联想到之前在社区里看到过不少批判 CSS-in-JS 的文章,对此...
使用 Next.js 12 和 Cosmic 构建一个可以上线的餐厅网站
译者 | 吴河东,审校 | 孙淑娟 梁策,Next.js - 用于生产的 React 框架,可以轻松地启动全栈应用程序。,Cosmic - 无头部 CMS工具,它实现了数据(内容)...
原来 TS 中 Declare 的作用是这样的!
当你打开 TypeScript 项目中 *.d.ts 声明文件时,你可能会看到 declare 的身影。你知道 declare 的作用是什么?如果不知道的话,看完本文之后,也许你就懂了。...
如何统一前端项目的 Node 版本和包管理器?
成员机器 Node.js 版本不统一:守旧派用 12.x、保守用 14.x、激进用 17.x。项目能否正常跑起来全凭天意,在没有 CICD 流水线加持本地 npm run build 的场景下...
为遗留 Node.js 后端编写自动化测试
,Node.js 作为后端框架,自 2009 年首次发布以来,已被越来越多的公司广泛采用。它的成功有以下几个原因:JavaScript 语言 (又称 Web 语言) 的应用,一个丰富...
js中matchAll()方法的使用
,说明,1、matchAll()方法返回一个包含所有匹配正则表达式和分组捕获结果的遍历器。,2、因为返回的是遍历器,所以通常使用for...of循环取出。,实例,以上就是js...
js如何实现类型判断
,1、判断引用类型和基本类型的类型是不同的,判断基本类型可以用typeof:,2、typeof对引用类型,除了函数返回function,其他都返回object。但我们开发中数组...
Node.js 是如何跑起来的
本文为来自 字节跳动-国际化电商-S 项目团队 成员的文章,已授权 ELab 发布。,疑问,NodeJS 代码是如何跑起来的,TCP 连接在 NodeJS 中是如何保持一...
爬虫篇之JS逆向破解
,爬虫中很重要的一个点就是JS的逆向破解加密,今天我们来浅析一下。,先简单介绍一下为什么要有JS解密,目前大部分网页都是采用的前后端分离的方式,所以呢,...
js中yield和yield*表达式的介绍
,说明,1、yield和yield* 只能在生成器函数中使用。,生成器函数内部通过yield提前返回,前面的计数器就是利用这个特性向外部传递计数的结果。,2、生成器函数通...
了解如何使用 Node.js 构建微服务
在移动应用程序开发公司的帮助下构建实时应用程序对于任何企业来说都是最重要的事情。添加新功能并为用户提供更好的用户体验在任何商业应用程序中都起着至关...
2022年值得使用的 Node.js 框架
Node.js 是最受欢迎的 JavaScript 运行时,今天就来看看有哪些热门、值得使用的Node.js 框架。,Next.js 是一个用于生产环境的 React 应用框架,使用它可以快...
【VueConf 2022】Vue的进化历程
,12 月 10 日,第五届 Vue.js 开发者大会(VueConf 2022)由 Vue.js 官方通过在线直播的方式举办。Vue.js 作者尤雨溪发表了题为 《Vue 的进化历程》&nbs...
玩转 Image 篇,推荐十个你没见过的图片处理神器项目,YYDS!
大家好,我是你们的 猫哥,那个不喜欢吃鱼、又不喜欢喵 的超级猫 ~,又是好久不见了,最近忙成狗,天天都在加班,挺久没上线了,唉。,高性能 Node.js 图像处理...
调试工具的通用原理:调试四要素
作为前端开发,调试是每天都会接触的概念。你觉得什么是调试呢?,有同学说,我用 Chrome DevTools 调试网页,可以查看元素,网络请求,断点运行 JS,用 Perfo...
js new操作符的使用步骤
,说明,1、创建一个空对象。,2、将对象的__proto指向结构函数的原型prototype。,3、执行结构函数中的代码,传输参数,并将this指向该对象。,主要是把原型链和...
用原生 JS 写一个简易版的台球
,突发奇想想用JS写一个台球小游戏,磕磕碰碰之后,算是实现了一个简易版的。用到的知识主要是通过递归来调用requestAnimationFrame,以及一些简单的三角函数...
2022前端应该掌握的十个 JS 小技巧
你知道 0 ?? 1等于多少吗?,大家好,我是 LBJ,今天我们聊聊2022一些值得掌握的新特性!,现在前端发展很快,各种技术和框架层出不穷、...
前端开发利器Jsdoc:让我们像写Typescript一样写JavaScript
,众所周知的原因,由于JS的语言特性,任何开发工具都不能为JS提供足够好的智能提示,正因为此,微软创造的轮子:typescript,横空出世!,那么,有没有一种不...
五个实用JS库99%的人可能都不知道
,作为一名前端开发者,我通过这些JavaScript库大大提高了自己的效率,比如格式化日期、处理URL参数、调试手机网页等。因此,我想将这些好用的库分享给你们,...
使用 Three.js 实现跳一跳游戏
跳一跳是微信小程序[3]的一个小游戏。长按屏幕让小人蓄力跳跃,进行游玩。按照小人跳跃盒子的数量,以及特殊盒子加分项计算得分。,十分简单:长按鼠标蓄力、...
数十亿下载项目面临维护困境!负责人抱怨:开源被破坏到无人买单!
作者 | 云昭,周下载2600万,累计下载数十亿次的Core-js的负责人要打“退堂鼓”了。Denis Pushkarev是数百万网站使用的Core-js库的维护者,近日,他...
如何移除你项目中99%的JS代码
大家好,我卡颂。,在前不久的WWC22中,builder.io的CTO 「miško hevery」(同时也是Angular/AngularJS的发明者)发表了一段充满想象力的演讲。,miško he...
Node.js 是怎么找到模块的?你知道吗?
,大家好,我是前端西瓜哥,今天我们来看看 Node.js 模块查找的原理。,模块有三种来源。,需要注意的是,'a/b' 这种不属于路径写法,它属于前两种,比如 'fs/pr...
用 Babel 和 Nodemon 搭建一个功能齐全的 Node.js 开发环境
笔者最近在工作之余,一直在做数据可视化和nodejs方面的研究,虽然之前的web工作中接触过nodejs和可视化相关的内容,但是没有一个系统的总结和回顾,所以为了更深...
Node.js 子线程 Crash 问题的排查
前言:昨天碰到了一个 worker_threads crash 的问题,最终经过阅读源码和调试找到了具体原因。不得不说,阅读源码是解决问题的非常有效的方法。,代码例子如下...
js中for…in语句的使用注意
,说明,1、index索引为字符串数字(注意非数字),不能直接进行几何操作。,2、遍历顺序可能不是基于实际数组的内部顺序(可能是基于随机顺序)。,3、一般不建议使...
JavaScript 错误对性能的影响
虽然Web性能的实践已经存在了一段时间,并且多年来研究和调试JavaScript (JS)错误的能力有所提高,但我们从未真正关注过错误对性能的影响。,JavaScript错误...
如何写一个 JS 运行时
随着 Node.js 的出现和不断发展,其他新的 JS 运行时也穷出不断,Deno、Just、Bun等等。本文简单介绍一下如何写一个 JS 运行时,相比操作系统、编译器来说,...
如何看待《关于禁止小程序 JavaScript 解释器使用规范要求》?
为进一步提升小程序的安全性和用户体验,目前平台对提审的小程序均需进行安全检测,在检测过程中,发现有小程序采用内置 JavaScript 解释器(如 eval5、esti...
学习 ReactJS 之前,你需要了解多少 JavaScript?
,React 是一个建立在 HTML、CSS 和 JavaScript 之上的 UI 框架,其中 JavaScript(JS)负责大部分的逻辑。如果你对变量、数据类型、数组函数、回调、作用域、...
React 的一些优秀安全实践
,React.js、Vue.js 这些现代的前端框架默认已经对安全做了非常多的考虑,但是这仍然不能阻碍我们写出一些安全漏洞 。。。因为框架永远不能完全限制我们...
事件循环机制:JavaScript被设计为单线程,那如何做到异步的呢?
JavaScript是单线程的语言,单线程是指所有的程序路径按照一定的顺序执行,只有前面的程序执行了,后面的程序才会执行。,,也就是说在同一时间,JavaScript只...
前端面试题:用 JS 来实现内置的 Bind 方法
,大家好,我是前端西瓜哥,今天我们用 JS 来实现内置的 bind 方法。,在实现之前,我们先学习一下 Function.prototype.bind 的用法。,bind 是函数特有的一个方...
如何用ml5.js和HTML创建一款图像分类工具
译者 | 布加迪,审校 | 孙淑娟,机器学习是现代世界的一项基础技术。计算机可以学习识别图像、创作艺术品,甚至自行编写代码,所有这些基本上不需要人的干预。,...
js局部变量是什么
,说明,1、局部作用域声明的变量称为局部变量(函数内部定义的变量),2、局部变量只能能使用局部变量。,var在函数内部声明的变量是局部变量。,3、函数的形参实际...
js数组在头部或尾部插入元素的方法
,1、unshift()在数组开头插入元素,把一个或多个参数值附加到数组的头部。,实例 ,2、push()把一个或多个参数值附加到数组的尾部。 ,3、concat()将作为参数...