[Js++开发历程] 还是那个字符“$”

“$”这个字符在很多Javascript框架中都有用到,所以我们也不妨用用。

那她具体有何用呢?我考虑了以下几点:

1.“$”为一个静态对象,一般是作成工具类,“$()”为Jclass对象的prototype。

2.“$”的这个变量形成的函数根据参数个数的不同,会返回不同的结果

3.对于$函数,有以下考虑

  3.1 $() 参数为空值时,返回 Jclass.prototype 

  3.2 $(HTMLElement) 参数为HTMLElement时,返回一个即时Jclass对象。返回的对象不能存储,因为此对象的dom会被下一次调用时更新

  3.3 参数为字符串时,返回通过querySelectorAll方式获取的Jclass对象

  3.4 $({$:'class',id:'id1',name:'jspp'}) 参数为对象时,且含有$属性时,创建一个构造函数参数为{id:'id1',name:'jspp'},类名为'class'对象

  3.5 $(function(){}) 参数为函数时,文档加载完成后,回调此函数

  3.6 其他的参数,返回一个Jclass对象

 

4.由于$()返回是Jclass.prototype,所以对$()的扩展就是对Jclass.prototype的扩展,当然也可以通过$.fn来获取Jclass.prototype

5.$().$()函数,即Jclass.prototype的$()函数,有以下考虑

  5.1 $() 参数为空值时,返回Jclass对象第一个dom

  5.2 $({$:'class',id:'id1',name:'jspp'}) 参数为对象,且含有$属性时,创建一个构造函数参数为{id:'id1',name:'jspp'},类名为'class'对象,

      并将自己(Jcalss对象)赋值给生成对象的owner属性上

  5.3 $(function(){}) 参数为函数时,第一个dom加载完成后,回调此函数

  5.4 其他参数 查看 $().query

 

6.Jclass的链式调用,Jclass的类很多函数都会返对象本身,所以可以采用链式调用的方式,比如:$('id1').first().back().css();

7.由于Jclass是封装dom的数组对象,因此就是提供很多返问数组元素的机制

  7.1  如何对数组进行遍历:get,head,tail用于获取数组对象的index个、第1个、最后一个dom生成的Jclass对象

  7.2  如何对dom对象的遍历:first,last,prev,next,parent 用于获取Jclass的第index个dom的第一个孩子、

       最后一个孩子、前一个、后一个、父亲的dom生成的Jclass对象

  7.3  遍历后如何退回:back 获取创建此Jclass对象的创建者的Jclass对象

深入了解JavaScript及其在Glassdale项目中的应用 本文还有配套的精品资源,点击获取 简介:JavaScript是Web开发中不可或缺的编程语言,由Brendan Eich于1995年开发。本文将探讨JavaScript的历史、语法、应用场景、以及在前端和后端开发中的关键技术和工具。特别提到了DOM操作、事件处理、AJAX、ES6新特性、Node.js、前端框架、TypeScript、调试测试、构建工具,以及社区资源等知识点... 阅读详情

相关推荐

基于Codex/Claude Code的学术技能包:13个Skill实现科研全流程自动化

写论文最头疼的是什么?是面对海量文献无从下手,还是实验数据一团乱麻,或者是好不容易有了结果,却卡在写作和格式调整上?如果你也经历过从选题到投稿的完整科研周期,就会明白每个环节都可能消耗大量时间精力。今天要分享的这套工具链,正是为了解决这些痛点而生——基于 Codex 和 Claude Code 平台的学术技能包(Academic Skills),它通过 13 个精心设计的 Skill,将一篇论文从 0 到 1 的全流程自动化、标准化,让你能更专注于研究本身。 这套技能包并非单一工具,而是一个覆盖文献阅读、数

weixin_33979203的博客 543

[Js++开发历程] DOM的遍历

DOM的遍历 对于Web开发,DOM的遍历是最为普遍了。   3.1.1 什么是DOM DOM 是 Document Object Model(文档对象模型)的缩写。   3.1.2 DOM重要属性 nodeType 属性返回节点的类型。nodeType 是只读的。 比较重要的节点类型有: 元素=1 属性=2 文本=3 注释=8 文档=9   nodeName 属性规定节...

ESR 研发中心 179

FTP新手必看:vsftpd 530登录错误的8种实战解决方案(附详细配置步骤)

本文针对FTP服务配置中常见的vsftpd 530登录错误,提供了8种实战解决方案。从理解错误本质入手,系统性地排查用户列表策略、PAM认证、系统黑名单、Shell限制、目录权限及DNS解析等问题,并附有详细的配置步骤与命令,帮助新手快速定位并解决登录失败难题。

ik678901的博客 696

前端工程师就业班淘宝商城HTML/CSS项目实战【JS++前端】-艾小野-专题视频课程...

该课程是既JS++ HTML/CSS深度课程后的项目实战课程,该课程完全按照淘宝企业级网站布局与样式为主线,不仅完成整个首屏及重点部分的布局样式构建,而且详细剖析的开发技巧及开发中遇到问题时的解决方案。...

jsplusplus的博客 469

LinuxCNC---在PC端显示开发板LinuxCNC界面

  今天在调试开发板时,执行开发板上的linuxcnc指令,总是出现如下报错 LINUXCNC - 2.9.0~pre0 application-specific initialization failed: couldn't connect to display "192.168.137.3:1" Error in startup script: invalid command name "image" while executing "image create photo -file $f/$i

中华田园巨龙 3470

【MTK平台】【wpa_supplicant】关于wpa_supplicant/p2p_supplicant.c文件的介绍

本文主要介绍external/wpa_supplicant_8/wpa_supplicant/p2p_supplicant.c 这个文件这个文件里面有个核心的方法就是。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 725

【Web开发】第2节:JavaScript

JavaScript 是一种脚本编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息,而是实时的内容更新——交互式的地图、2D/3D 动画、滚动播放的视频等等——JavaScript 就在其中。它是标准 Web 技术蛋糕的第三层,其中 HTML 和 CSS 我们已经在学习区的其他部分进行了详细的讲解。

m0_46013789的博客 849

Linux系统中u-boot启动流程分析(详解)

代码部分,具体如下;

嵌入式技术开发 1992

JS 的模块化规范发展历程

模块化开发是一种管理方式,是一种生产方式,一种解决问题的方案,一个模块就是实现特定功能的文件,有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。解决目标提高代码的可维护性,降低重构成本解决全局变量污染和变量重名等问题依赖管理缺点系统分层,调用链会很长模块间通信,模块间发送消息会很耗性能。

胖蔡叨叨叨 557

量产导入 | 产品可靠性测试标准完整大集合(JEDEC/IEC/SAE…)

产品可靠性测试是产品质量保证中的重要一环, 包含有Pre-con, aging(寿命)和ESD(静电)等, 下面就收集了权威标准JEDEC全系列, 请参照如下 同时也附上其它的可靠性标准供大家参考及交叉理解, 可能侧重点不同, 大家可以参考下。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1664

【AUTOSAR-COM】-10.5-APP CAN Frame/PDU“发送周期不准“的影响因素

一个Tx PDU在COM模块中的数据流; Tx APP CAN Frame/PDU"发送周期不准"的影响因素;

「汽车电子助手」的博客 2386

JS模块化历程

首先,在ES6的class出来之前是没有模块的,JS就不是一个模块化的语言,所谓的“模块”要么是个匿名函数,要么就是个对象的伪模块 var module = (function(){ let _count = 2 // 私有变量 let m1 = function() { console.log(_count) } let m2 = function() { console.log(_count + 1) } return {

yingmd2020的博客 351

荣耀Magic 6 dToF LiDAR Android阵营全球第一首发

40X30分辨率的BSI SPAD小面阵,帧率达到60帧,搭配多传感器融合算法, 可产生足够的稠密点云,为应用设备提供可靠的距离传感。在手机消费电子方案中,dToF LiDAR技术不仅提升了手机的功能和用户体验,还为手机厂商提供了差异化的竞争优势。随着技术的不断进步和市场的快速发展,我们可以期待未来dToF LiDAR技术将在手机领域发挥更大的作用,为用户带来更多创新和便捷的功能。增强现实(AR)体验:通过dToF LiDAR提供的高精度深度信息,手机可以更准确地放置虚拟物体在现实世界的表面上。

致力于lidar应用开发 19万+

JavaScript全面解析:现代Web开发的基石

JavaScript作为Web核心语言,已从简单的浏览器脚本发展为全栈开发工具。本文系统介绍了JavaScript的发展历程、核心语法(变量、运算符、流程控制)、函数与作用域、面向对象编程、数组操作、异步编程(回调/Promise/async-await)、模块化等核心概念。同时涵盖了现代特性如ES6+的解构赋值、扩展语法、模板字符串,以及DOM操作、错误处理、性能优化等实践技巧。

m0_75178011的博客 410

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JavaScript+DOM编程艺术笔记(一)

Javascript与DOM的笔记系列

Autovy blog 397

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JavaScript小白基础学习教程

JavaScript学习javaScript基础概念:功能:javaScript发展史基本语法与html的结合方式弹出窗口显示页面DOM简单学习 javaScript基础 概念: 一门客户端脚本语言 *运行在客户端浏览器中,每一个浏览器都有一个JavScript的解析引擎 *脚本语言:不需要编译,直接被浏览器解析执行 功能: 可以增强用户与html页面的交互过程,可以控制HTML元素,让页面有一些动态效果,增强用户体验 javaScript发展史 1992年,Nombase公司开发了第一门客户端脚本语言,

layAlex的博客 5182

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【Java Web前端开发】JavaScript基础

文章目录JavaScript: JavaScript: * 概念: 一门客户端脚本语言 * 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎 * 脚本语言:不需要编译,直接就可以被浏览器解析执行了 * 功能: * 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。 * JavaScript发展史: 1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:Sc

NJU phd 在读。 564

JS入门教程

1997年,JavaScript成为了ECMAScript标准的一部分,这个标准是由欧洲计算机制造商协会(ECMA)制定的。:随着Ajax(Asynchronous JavaScript and XML)技术的出现,JavaScript得到了更广泛的应用,推动了Web 2.0的发展,使得动态加载内容成为可能。:自2015年起,每年都会发布新的ECMAScript版本,引入了许多现代化的语言特性,比如箭头函数、模板字符串、解构赋值、类、模块等,极大增强了JavaScript的功能性和易用性。

横竖撇折点 349

web前端开发01--javascript

JavaScript:w3cschool传送门 概念: 一门客户端脚本语言 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎 脚本语言:不需要编译,直接就可以被浏览器解析执行了 功能: 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。 JavaSc...

qq_34536604的博客 257

ts的学习历程 -- 01

ts是什么? TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。 TypeScript 由微软开发的自由和开源的编程语言。 TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。 语言特性 ts是一种给js添加特性的扩展性语言,扩展功能如下: 基础类...

weixin_33853794的博客 1050

JavaScript客户端脚本语言

一、 发展史: * 1992年,nombas公司 C--,最早的客户端脚本语言。专门用于表单验证。 后更名为 scriptEarth * 网景 scriptlive,后来找到sun公司合作,共同开发出 JavaScript * 微软抄袭JavaScript 定义了 JScript * ECMA(欧洲计算机制造商协会)定义了一套客户端脚本语言的规范 ECMAScript规范 Ja...

ps181004的博客 724

JS基本语法

1.前端开发的基本介绍及前端开发的核心 数据渲染 用户体验 性能优化 2.javascript基本介绍及发展趋势 JavaScript 诞生于 1995 年。布兰登·艾奇(Brendan Eich)开发。 JavaScript是一种轻量级、解释型的Web开发脚本语言 3.一个完整的JavaScript 由三个不同的部分组成: 核心(ECMAScript):描述了该语言的语法和基本对象(e...

IMCLT的博客 271

javascript基本介绍

javascript基本介绍与发展趋势 javascript能做什么 简单来说就是对页面进行渲染,让页面有行为,让页面动起来。 /页面分为:结构、样式、行为。 javascript的发展历史 JavaScript在设计之初只是为了做表单验证。但是现如今,JavaScript已经成为了一门功能全面的编程语言,已经是WEB中不可缺少的一部分,如今的JavaScript是一门既简单又复杂的语言,说它简单...

xxgTX的博客 282

JavaScript基础

JavaScript: * 概念: 一门客户端脚本语言 * 运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎 * 脚本语言:不需要编译,直接就可以被浏览器解析执行了 * 功能: * 可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。 * JavaScript发展史: 1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:ScriptEase 2. 1995年,

qq_28728655的博客 163

【JavaScript】

JavaScript介绍 虽然是java作为前缀,但java和javascript的关系,就像老婆和老婆饼之间的关系,没有一毛钱关系! 网景公司在Netscape2.0首先推出了JavaScript JavaScript 的正式名称是 “ECMAScript”,此标准由 ECMA 组织发展和维护,简称“js” JavaScript 是一种网页编程技术,用来向 HTML 页面添加交互行为 JavaScript 是一种基于对象和事件驱动的解释性脚本语言,直接嵌入 HTML 页面,由浏览器解释执行代码,不进行预

xmcxmc___的博客 486
上一篇: [Js++开发历程] 前言
下一篇: [Js++开发历程] DOM的遍历
staffrobot
博客等级 码龄19年 6粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值