JavaScript进阶函数的复习

JavaScript 复习笔记(巩固学习JavaScript一篇就够)JavaScript基础快速入门 Javascript复习笔记 最近找了一些教程重新学习(复习) JavaScript,顺道将学习内容整理成笔记,巩固所学知识,同时也参考一些博客,书籍上的内容,查漏补缺,给自己充充电???????? 工欲善其事,必先利其器,为了提高开发效率,前端开发首选:VSCode(Visual Studio Code)。 初识JavaScript **「创始人」**布兰登·艾奇(Brendan Eich),起初命名为LiveScript后来Sun公司收购并改名为JavaScript。 **「JavaScript」* 阅读详情

目录

函数提升

函数参数

剩余参数

扩展-展开运算符

箭头函数

函数的this指向

严格模式

高阶函数

闭包

递归

函数作为参数和返回值


函数提升

函数提升是一个有趣的现象,它允许我们在函数声明之前调用它们。这在编写代码时提供了更大的灵活性,尤其是在处理回调函数或者异步编程中非常有用。函数提升只发生在相同作用域的函数之间,而且函数表达式不具有提升现象。

console.log(add(1, 2));
function add(a, b) {
  return a + b;
}

函数参数

函数参数的传递在JavaScript中是通过 arguments 对象实现的。这是一个内置的伪数组,它包含了对函数所有参数的引用。在实际开发中,我们常常使用 arguments 来处理不定数量的参数。

function getSum() {
  let sum = 0;
  for (let i = 0; i < arguments.length; i++) {
    sum += arguments[i];
  }
  console.log(sum);
}
getSum(1, 2, 3);

剩余参数

剩余参数的语法是使用 ... 来表示接受任意数量的参数。这使得函数可以有意识地忽略掉不需要的参数。

function curry(...args) {
  return function(next) {
    return args.concat(next);
  };
}
const curryAdd = curry(1, 2);
console.log(curryAdd(3)); // 输出 [1, 2, 3]

扩展-展开运算符

扩展-展开运算符 ... 可以用来将数组或其他可迭代对象的元素展开到数组中。

const arr = [1, 2, 3];
console.log(...arr); // 输出 1 2 3

箭头函数

箭头函数是ES6中引入的一个新特性,它可以让我们以更简洁的方式书写函数。

// 普通函数
function greet() {
  console.log('Hello World');
}
// 箭头函数
const greetArrow = () => console.log('Hello World');
greetArrow();

函数的this指向

在JavaScript中,函数的 this 指向是根据函数的调用方式决定的。通常情况下,函数的 this 指向的是全局对象 window。如果我们想在回调函数中使用 this 指向函数本身,可以使用 Function.prototype.bind() 方法。

function greet() {
  console.log('Hello World');
}
greet.bind(greet)(); // 输出 Hello World

严格模式

严格模式可以通过在函数体内添加 "use strict" 语句来开启。在严格模式下,有一些新的限制和行为改变,比如要求所有变量必须使用 var 声明,否则会导致错误。

function inStrictMode() {
  "use strict";
  console.log("This function is running in strict mode.");
}
inStrictMode();

高阶函数

高阶函数是指接受其他函数作为参数或将函数作为返回值的函数。

function apply(func, args) {
  return func.apply(null, args);
}
const applyDiv = apply(/,/);
console.log(applyDiv([1, 2, 3])); // 输出 1 2 3

闭包

闭包是指有权限访问另一个函数作用域中变量的函数。闭包的作用是可以在函数外部访问函数内部的局部变量。

function outer() {
  let count = 0;
  return function inner() {
    console.log(count);
  };
}
const closure = outer();
closure();

递归

递归是指函数自己调用自己。递归可以解决一些特定的问题,比如阶乘计算、树遍历等。

function factorial(n) {
  if (n == 0) {
    return 1;
  }
  return n * factorial(n - 1);
}
console.log(factorial(5)); // 输出 120

函数作为参数和返回值

函数可以作为其他函数的参数和返回值。这在设计模块和组件时非常有用。

function map(array, callback) {
  return array.map(callback);
}
const mapped = map([1, 2, 3], function(num) {
  return num * 2;
});
console.log(mapped); // 输出 [2, 4, 6]
Codesys电子凸轮实战:从机械替代到虚轴设计的5个关键步骤 本文详细介绍了Codesys电子凸轮技术在运动控制领域的实战应用,从机械替代到虚轴设计的5个关键步骤。通过电子凸轮技术,操作员可以快速调整切割模式,显著提升产线效率。文章还探讨了虚轴架构、CAM表设计、动态耦合技巧及调试避坑指南,为工业自动化领域提供了实用的解决方案。 阅读详情

相关推荐

Python xlwings报错解决:从‘NoneType‘到完美运行WPS表格的完整指南

本文深入解析了使用Python xlwings库自动化WPS表格时遇到的经典'NoneType'报错(AttributeError: 'NoneType' object has no attribute 'apps')的根源与解决方案。核心在于pywin32版本与WPS的兼容性问题,文章提供了从版本降级、依赖管理到构建健壮自动化环境的完整实战指南,帮助开发者彻底解决兼容性难题,实现稳定运行。

n4o5p6q7r的博客 303

Js进阶篇-对象复习-函数-正则-思维导图

Js进阶篇-对象复习-函数-正则-思维导图

Devil_hzw的博客 229

LaTeX小白必看:TeX Live+TeXstudio保姆级安装教程(附清华镜像加速)

本文为LaTeX新手提供了一份详尽的TeX Live和TeXstudio安装指南。通过清华大学镜像站实现高速下载,并详细讲解了从下载、定制化安装到配置优化的每一步,帮助用户快速搭建稳定高效的本地LaTeX写作环境,轻松处理学术文档排版。

weixin_29214559的博客 414

JavaScript进阶知识复习1

学习作用域、变量提升、闭包等语言特征,加深对 JavaScript 的理解,掌握变量赋值、函数声明的简洁语法,降低代码的冗余度。作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问,作用域分为全局作用域和局部作用域。JavaScript 中的作用域是程序被执行时的底层机制,了解这一机制有助于规范代码书写习惯,避免因作用域导致的语法错误。知道函数参数默认值、动态参数、剩余参数的使用细节,提升函数应用的灵活度,知道箭头函数的语法及与普通函数的差异。

2401_85837579的博客 979

Scrapy实现微博关键词爬虫(爬虫结果写入mongodb)

话不多说,上代码: spiders文件夹下的microBlogSpider.py里这样写: # -*- coding: utf-8 -*- import scrapy from scrapy import Spider, Request, FormRequest from scrapy.selector import Selector import datetime import random from blogSpider.items import microBlogItem, keyWordItem f

qq_39360565的博客 1779

EMC辐射发射测试:垂直与水平极化测试原理与实战指南

电磁兼容(EMC)测试是确保电子设备在复杂电磁环境中稳定运行的关键环节,其核心在于评估设备产生的电磁干扰(EMI)强度。辐射发射测试作为EMC测试的重要组成部分,通过测量设备向空间辐射的电磁噪声,判断其是否符合国际标准限值。测试原理基于电磁波的极化特性,即电场矢量的振动方向,主要分为垂直极化和水平极化。理解极化特性对于精准定位辐射源、高效进行EMC整改具有重要技术价值。在工程实践中,垂直极化噪声通常源于线缆辐射等垂直结构,而水平极化噪声多来自PCB走线等水平结构。通过分别测量两种极化方向的辐射最大值,可以全

weixin_32770423的博客 360

JavaScript进阶知识复习2

的数据类型有 6 种,分别是字符串、数值、布尔、undefined、null 和 对象,常见的对象类型数据包括数组和普通对象。之所以具有对象特征的原因是字符串、数值、布尔类型数据是 JavaScript 底层使用 Object 构造函数“包装”来的,被称为包装类型。了解面向对象编程的基础概念及构造函数的作用,体会 JavaScript 一切皆对象的语言特征,掌握常见的对象属性和方法的使用。甚至字符串、数值、布尔、数组、普通对象也都有专门的构造函数,用于创建对应类型的数据。

2401_85837579的博客 1000

电路研究9.4——合宙Air780EP的LuatOS、CSDK跟标准AT

 C-SDK、AT指令、LuatOS

esmember的博客 1116

JavaScript进阶知识复习4

首先浅拷贝和深拷贝只针对引用类型浅拷贝:拷贝的是地址常见方法:首先浅拷贝和深拷贝只针对引用类型深拷贝:拷贝的是对象,不是地址常见方法:函数递归:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数 js库lodash里面cloneDeep内部实现了深拷贝 JSON序列化 异常处理 throw 异常处理是指预估代码执行过程中可能发生的错误,然后最大程度的避免错误的发生导致整个程序无法继续运行总结: 总结: 总结:相当于断点调试 是 JavaScript 最具“魅惑”的知识点,不同的应用场合 的取

2401_85837579的博客 1157

Anaconda数据报错:Fatal error in launcher: Unable to create process using ‘“E:\Anaconda\python.exe“ “D:\

里面的pip.exe程序出现了问题,我这里直接删除,重新安装解决,上面已经手动删除pip.exe删除pip.exe,重新安装pip.exe用下面命令: 测试是否成功成功解决

Deng872347348的博客 1270

路径规划 | 图解RRT*算法(附ROS C++/Python/Matlab仿真)

RRT*算法针对传统RRT算法进行了渐进最优改进,在添加节点到搜索树的过程中进行重连选择。本文图解RRT*算法原理,并采用ROS C++、Python、Matlab三种语言实现算法,加深理解

FRIGIDWINTER的博客 9407

JavaScript进阶知识复习3

了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。

2401_85837579的博客 883

Python爬虫实战:美团商家数据采集系统

本文将详细介绍如何使用Python最新技术栈构建高效的美团商家信息采集系统。内容涵盖异步爬虫、反爬对抗、数据存储、可视化分析等完整流程,提供可落地的代码方案和工程实践。

2201_76125261的博客 2661

二阶段js 入门知识点 自我总结复习

二阶段自我总复习 1.javascript基础 : 客户端安全性跨平台脚本语言 三大结构:顺序 、选择、循环 顺序:运算符和表达式 逻辑运算符:与&& 或|| 非!如:5||6 5&&6 ...

bangguang6204的博客 251

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JS进阶-Day4

JavaScript进阶:深浅拷贝、异常处理、处理this、防抖节流

weixin_56498069的博客 897

深度学习工具包 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")

2024年Windows API函数大全(精心总结)_winapi函数大全(1),2024年最新面试题分享网站

其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)《前端开发四大模块核心知识笔记》最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

2401_84446548的博客 850

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【JavaScript复习十】数组入门知识

欢迎来到JS复习专栏,本章主要内容为数组基本知识。

weixin_62542181的博客 586

JavaScript -- 时光流逝(一):数据类型,变量,类型转换,函数

JavaScript -- 知识点回顾篇(一):数据类型,变量,类型转换,函数 1. 数据类型   Boolean:值类型,布尔(逻辑)只能有两个值:true 或 false。   Number:值类型,JavaScript 只有一种数字类型。数字可以带小数点,也可以不带   string:值类型,字符串可以是引号中的任意文本。您可以使用单引号或双引号   Undefined:...

aitcq60826的专栏 154

前端基础JavaScript 笔记

本文是基于B站pink老师JavaScript课程的学习笔记,系统介绍了JavaScript的基础知识。主要内容包括:JS简介、变量与数据类型、运算符、流程控制(分支与循环)、函数、对象及内置对象等核心概念。重点讲解了变量声明与赋值、数据类型转换、数组操作、函数定义与调用、对象属性与方法等基础语法。通过多个实践案例(如猜数字游戏、乘法表生成等)演示了JavaScript的实际应用,并涵盖了冒泡排序、随机数生成等算法实现。文章适合JavaScript初学者系统学习前端开发基础,掌握网页交互开发的核心技能。

QT281327的博客 1095

跟着9张思维导图学习Javascript

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34010566的博客 302

快速学习javascript 整体架构方法

思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却又极其有效,是一种革命性的思维工具。思维导图运用图文并重的技巧,把各级主题的关系用相互隶属与相关的层级图表现出来,把主题关键词与图像、颜色等建立记忆链接,思维导图充分运用左右脑的机能,利用记忆、阅读、思维的规律,协助人们在科学与艺术、逻辑与想象之间平衡发展,从而开启人类大脑的无限潜能。思维导图因此具有人类思维的强大功能

ejinxian的专栏 740

03-JavaScript高级

学习目标: 理解面向对象开发思想 掌握 JavaScript 面向对象开发相关模式 掌握在 JavaScript 中使用正则表达式 typora-copy-images-to media JavaScript 高级 课程介绍 课程大纲 在线地址:JavaScript 高级 目标 理解面向对象开发思想 掌握 JavaScript 面向对象开发相关模式 掌握在 JavaScript 中使...

weixin_43776755的博客 276

9张思维导图学习Javascript(转)

思维导图小tips:思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却又极其有效,是一种革命性的思维工具。思维导图运用图文并重的技巧,把各级主题的关系用相互隶属与相关的层级图表现出来,把主题关键词与图像、颜色等建立记忆链接,思维导图充分运用左右脑的机能,利用记忆、阅读、思维的规律,协助人们在科学与艺术、逻辑与想象之间平衡发展,从而开启人类大脑的无限潜能。思维导图因此具有人类思维的...

weixin_33885253的博客 95

学习Javascript的8张思维导图

学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将po出8张javascript相关的思维导图。 分别归类为: javascript变量 javascript运算符 javascript数组 javascript流程语句 javascript字符串函数 javascript函数基础 javascript基础DOM操作 javascript正则表达式 能够...

weixin_30872337的博客 152

Javascript的基础复习(一)

首先要更正一个大家容易误解的问题,就是Javascrip和JAVA其实是没有任何关系的,之所以这个脚本语言叫这个名字是因为当时的JAVA的风头正盛所以这个脚本语言为了得到更好的发展于是就叫了现在这个名字,好了言归正传,下面我来简单说一下Javascrip的基础知识。 javascript 几种引用方式: 1、直接可也写在html文件中     1)javascript书写的代码和位置,一般情

AFei_student的专栏 530

javascript期末复习题

一、单项选择题 1、HTML表格标签是( B ) A、<form> B、<table> C、<img> D、<select> 2、HTML表格中的行标签是( B ) A 、<a> B、<tr> C、&lt...

qq_41827511的博客 8426
上一篇: css复习
下一篇: JavaScript高阶函数的复习
香菜南波万
博客等级 码龄3年 879粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值