自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 收藏
  • 关注

原创 JS数据结构与算法

一、数据(核心)(一)作用一个对象,用来存储一些值,用数字作为索引操作对象(二)常用方法引用数组对象语法:数组 [ 索引值 ]注:读取索引不存在,则返回undefined获取数组长度使用length属性获取数组长度语法:数组 . length常用数组方法. length()修改数组长度length大于原长,多余部分空出来;若length小于原长,多出部分被删除. push()向数组的末尾添加一或多个元素,并返回数组长度参数:要添加的元素.

2020-12-07 22:15:56 488

原创 手撕前端面试十几种常考的手写题(一篇就够)

废话不多说,直接上代码防抖function JLDebounce(fn, deplay){ let timer = null; const _debounce = function(...args){ if(timer) clearInterval(timer); timer = setTimeout(() => { fn.apply(this, args); }, deplay); } return _debounce;}节流funct

2022-03-17 23:10:41 1830

原创 带你手撕Promise(全文无废话)

手撕Promise//定义状态const PROMISE_STATUS_PENDING = 'pending';const PROMISE_STATUS_FULFILLED = 'fulfilled';const PROMISE_STATUS_REJECTED = 'rejected';//工具函数function executorWithCatchError(execFn, value, resolve, reject){ try{ const result = execFn(v

2021-10-29 10:43:08 266

原创 new都做了什么

在堆内存中创建一个新对象(空对象)这个对象内部的[[prototype]]属性(对象的隐式原型)被赋值为构造函数的prototype属性(构造函数的显式原型)构造函数内部的this指向创建出来的新对象执行函数内部的代码(函数代码)如果构造函数没有返回非空对象,则会返回创建出来的新对象...

2021-10-24 13:03:21 228

原创 JavaScript柯里化

维基百科定义在计算机科学中,柯里化(英文Currying),又译为卡瑞化,或加里化是把接受多个参数的函数,变成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数,而且返回结果的新函数的技术柯里化声称 “ 如果你固定某些参数,你将得到接受余下参数的函数 ”总结只传递给函数一部分参数来调用它,让它返回一个函数来处理剩余的参数这个过程称之为柯里化原生实现柯里化function TestCurrying(fn){ function curried1(...args){

2021-10-24 12:56:29 151

原创 手写call、apply、bind函数

call、apply、bind三者均能改变当前this指向三者的区别:三者的第一个参数均为新的this指向第二个参数:call和bind为参数列表,apply为参数数组只有bind返回一个函数手写实现call函数Function.prototype.TestCall = function(thisArg,arg){ //获取要执行的函数 let fn = this; //转换新this指向的类型 thisArg = (thisArg !== null && thisA

2021-10-22 12:47:28 254

原创 this指向

废话不多说,先了解一下this的绑定规则规则一:默认绑定规则二:隐式绑定规则三:显示绑定规则四:new绑定

2021-10-21 16:29:14 90

原创 MySQL数据库基础操作(一看就会)

MySQL数据库基础操作SQL分类:DQL:数据查询语言代表关键字:selectDML:数据操纵语言代表关键字:insert,delete,updateDDL:数据定义语言代表关键字:create,drop,alertDCL:数据控制语言代表关键字:grant,revokeTCL:事务控制语言代表关键字:commit,rollback一、常用命令(一)启动MySQL数据库net start mysqlG:\MySQL\mysql-5.7.28

2021-03-31 21:09:22 2805 8

原创 Linux基础笔记

一、Linux 终端命令格式(一)终端命令格式command [-options] [parameter]command:命令名,相应功能的英文单词或单词的缩写[-options]:选项,可用来对命令进行控制,也可省略parameter:传给命令的参数,可以是 零个、一个 或者 多个[] 表可选(二)查阅命令帮助信息(1)--helpcommand --help显示 command 命令的帮助信息(2)manman command查阅 command 命令的使用

2021-02-25 13:25:44 407

原创 python面向对象笔记

一、面向对象(一)基本概念(1)面向对象编程 —— Object Oriented Programming 简写 OOP(2)面向对象三大特性封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中定义类的准则封装 是面向对象编程的一大特点面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中外界 使用 类 创建 对象,然后 让对象调用方法对象方法的细节 都被 封装 在 类的内部继承 实现代码的重用,相同的代码不需要重复的编写设计类的技

2021-02-23 13:55:59 596

原创 Python基础笔记(全)

零、python前言(一)解释器计算机不能直接理解任何除机器语言以外的语言,必须要把程序语言翻译成机器语言,计算机才能执行程序。编译器:将其他语言翻译成机器语言的工具编译器翻译的方式:编译,解释。两种方式的区别在于翻译时间点的不同。当编译器以解释方式运行的时候,也称之为解释器编译型语言:程序执行之前需要有一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。解释型语言:解释型语言编写的程序不进行预先编

2021-02-08 18:55:25 34271 13

原创 ES6笔记大全(一篇学完ES6)

一、Let和Constlet声明变量,可变const定义常量(实际指的是变量和的内存地址),不可变只能在其声明或定义的代码块内有效注:若区块中存在let或者const命令,则这个区块对这些变量和常量在一开始就行成封闭作用域,只要在声明之前使用就会报错(可能会出现暂时性死区)不能重复声明,否则报错(一)块级作用域闭包:JS中的变量是没有作用域时的一个临时解决方案块级作用域可以任意嵌套外层作用域不能访问内层作用域的变量内层作用域可以定义外层作用域的变量函数中的块级作用域e

2021-01-23 16:36:57 11487

原创 ES6笔记(纯干货)

一、Symbol新的数据类型,表示独一无二的值通过symbol函数生成let s=Symbol();对象属性名的两种表示方法:1、原有字符串表示。2、Symbol表示Symbol可接受一个字符串作为参数,表示对Symbol实例的描述,主要是为了在控制台输出,或者是转为字符串时比较容易区分如果Symbol的参数是一个对象,则会调用toString方法将其转换成为字符串,然后生成一个Symbol值Symbol值不能与其他类型的值进行运算,否则会报错Symbol值可以显式的转为字符串let

2021-01-21 00:34:32 333

原创 ES6笔记(一)

一、Let和Constlet声明变量,可变const定义常量(实际指的是变量和的内存地址),不可变只能在其声明或定义的代码块内有效注:若区块中存在let或者const命令,则这个区块对这些变量和常量在一开始就行成封闭作用域,只要在声明之前使用就会报错(可能会出现暂时性死区)不能重复声明,否则报错块级作用域闭包:JS中的变量是没有作用域时的一个临时解决方案块级作用域可以任意嵌套外层作用域不能访问内层作用域的变量内层作用域可以定义外层作用域的变量函数中的块级作用域es6中

2021-01-18 18:35:31 240

原创 vue生命周期

vue生命周期官方图解生命周期简单理解:从生到死,vue实例从创建到运行到销毁的过程复杂解释:vue实例从创建、初始化数据、编译模板、挂载DOM、渲染到更新到渲染、销毁等一系列过程生命周期方法vue实例从生到死伴随各种各样的事件,这些事件所触发的方法称为生命周期方法创建期间生命周期方法beforeCreate//执行时,表vue实例刚出生,还没有任何内容,data/methods未初始化created//执行时,表vue实例已经初始化好了部分内容,data/meth

2020-12-09 20:49:02 328 2

原创 JS隐式转换

一、隐式转换介绍在JS中运算符运算时,如果两边数据不统一,CPU无法计算时,编译器自动将运算符两边的数据做一个数据类型转换,转换成一样的数据进行运算,这种编译器自动转换的方式被称为隐式转换二、转换规则转换成string类型: + (字符串连接符)转换成number类型:++、--、+、-、*、/、%、==、===、!==、<=、>=、<、>(关系运算符)转换成Boolean类型:!(逻辑运算符)三、常见转换方法String()、toString()、Num

2020-12-09 19:27:31 676

原创 vue中V-指令(部分)(简明笔记)

一、v-once该指令后面不需要跟任何表达式改指令表示元素和组件值渲染一次,不会随着数据的概念而改变eg:<div id="a"> <h1 v-once>{{message}}</h2> </div><script> const a = new Vue(){ el:'#a', data:{ message:"哈哈哈哈哈!" } }</script&g

2020-10-23 22:49:59 726

原创 ES6简明笔记

一、let和const(一)let let声明变量,应该注意一下几点:变量不能重复声明,否则报错 与var不同,let声明的变量属于块级作用域 不存在变量提升 不影响作用域链(二)const const定义常量,应该注意一下几点:const定义常量一定要赋初始值 常量一般使用大写(潜规则) 常量的值不能修改 块级作用域 对于数组和对象的元素修改,不算做对常量的修改,不会报错二、变量解构赋值 在ES6中允许按照一定模式从数组和对象中提取值,对变量进行赋值,称为...

2020-10-14 15:59:11 532

原创 Python序列

一、列表 list(一)列表的基本操作(1)列表的创建使用“ = ”将一个列表赋值给变量。注:列表中可嵌套列表类型、元组类型,字符串,数字。(2)列表元素读取列表名 [ 索引 ]若索引不存在,则提示下标越界。(3)列表切片列表名 [ 开始索引 :结束索引 :步长 ]开始索引:表示是第一个元素对象,正索引位置默认为0;负索引位置默认为-len。结束索引:...

2020-04-19 14:29:40 396

原创 Python程序流程控制

一、顺序结构程序 1.按照书写的顺序执行,除非指示转移。 2.数据输入与输出 (1)标准输入 input() #接受任意任性输入,若无提示符则默认输入为字符型。(课用强制类型转换改变变量类型) eval() #强制类型输入,由用户输入的类型决...

2020-04-05 17:14:59 676

原创 Python数据类型,运算符和表达式

一.常量,变量和标识符1.标识符 用来表示各种程序成分,命名程序中的一些实体(变量,常量,函数名等) 标识符命名规则:(1)变量名和函数名中的英文字母一般用小写,增加程序的可读性 (2)见名知意(一般选用相应英文单词或者拼音缩写) (3)尽量不适用易混淆字符做标识符 (4)避免开通结尾使用下划线2.常量 程序运行过程中其值不能改变的量...

2020-04-04 18:04:17 994

原创 6-46 逆序数据建立链表 (20分)

本题要求实现一个函数,按输入数据的逆序建立一个链表。函数接口定义:struct ListNode *createlist();函数createlist利用scanf从输入中获取一系列正整数,当读到−1时表示输入结束。按输入数据的逆序建立一个链表,并返回链表头指针。链表节点结构定义如下:struct ListNode { int data; struct ListNode ...

2020-02-23 15:18:12 1050

原创 7-316 藏头诗 (15分)

本题要求编写一个解密藏头诗的程序。输入格式:输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占两个字节。输出格式:取出每句的第一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。输入样例:一叶轻舟向东流帆稍轻握杨柳手风纤碧波微起舞顺水任从雅客流输出样例:一帆风顺#include<stdio.h>int main(){ ch...

2020-02-21 18:38:59 1622

原创 6-44 建立学生信息链表 (20分)

本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。函数接口定义:void input();该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下:struct stud_node { int num; /*学号*/ char name[20]; /*姓名*/ int...

2020-02-21 12:37:07 529

原创 7-36 统计指定数量学生的平均成绩与不及格人数 (15分)

本题要求编写程序,计算学生们的平均成绩,并统计不及格(成绩低于60分)的人数。题目保证输入与输出均在双精度范围内。输入格式:输入在第一行中给出非负整数n,即学生人数。第二行给出n个非负实数,即这n位学生的成绩,其间以空格分隔。输出格式:average = 成绩均值count = 不及格人数其中平均值精确到小数点后两位,等号的左右各有一个空格。输入样例1:460 54 95 73...

2020-02-13 12:44:56 18603 5

原创 7-37 统计英文字母和数字字符 (15分)

本题要求编写程序,输入10个字符,统计其中英文字母、数字字符和其他字符的个数。输入格式:输入为10个字符。最后一个回车表示输入结束,不算在内。输出格式:在一行内按照letter = 英文字母个数, digit = 数字字符个数, other = 其他字符个数的格式输出。请注意,等号的左右各有一个空格,逗号后有一个空格。输入样例1:Reold 123?输出样例1:lette...

2020-02-12 14:09:19 4490

原创 6-17 使用函数输出指定范围内的Fibonacci数 (20分)

本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:int fib( int n );void PrintFN( int m, int n );其中函数fib须返回第n项Fibona...

2020-02-12 13:23:01 499

原创 6-16 使用函数输出一个整数的逆序数 (20分)

本题要求实现一个求整数的逆序数的简单函数。函数接口定义:int reverse( int number );其中函数reverse须返回用户传入的整型number的逆序数。裁判测试程序样例:#include <stdio.h>int reverse( int number );int main(){ int n; scanf("%d", &...

2020-02-12 12:39:43 437

原创 6-14 使用函数求特殊a串数列和 (20分)

给定两个均不超过9的正整数a和n,要求编写函数求a+aa+aaa++⋯+aa⋯a(n个a)之和。函数接口定义:int fn( int a, int n );int SumA( int a, int n );其中函数fn须返回的是n个a组成的数字;SumA返回要求的和。裁判测试程序样例:#include <stdio.h>int fn( int a, int n );...

2020-02-12 12:24:06 325

原创 6-13 分类统计字符个数 (15分)

本题要求实现一个函数,统计给定字符串中英文字母、空格或回车、数字字符和其他字符的个数。函数接口定义:void StringCount( char s[] );其中 char s[] 是用户传入的字符串。函数StringCount须在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。裁判测试程...

2020-02-12 12:07:45 975

原创 7-35 奇偶分家 (10分)

给定N个正整数,请统计奇数和偶数各有多少个?输入格式:输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。输出格式:在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。输入样例:988 74 101 26 15 0 34 22 77输出样例:3 6#include<stdio.h>main(){ int i,j=0,t=0,n,...

2020-02-10 11:50:31 401

原创 6-9 使用函数统计指定数字的个数 (15分)

本题要求实现一个统计整数中指定数字的个数的简单函数。函数接口定义:int CountDigit( int number, int digit );其中number是不超过长整型的整数,digit为[0, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。裁判测试程序样例:#include <stdio.h>int CountDigit( ...

2020-02-08 16:59:08 3485

原创 7-296 混合类型数据格式化输入 (25分)

本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。输入格式:输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。输出格式:在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。输入样例:2.12 88 c 4.7输出样例:c 88 2.12 4.70#include<st...

2020-02-08 14:51:45 219

原创 7-298 分段函数2 (20分)

计算分段函数,测试数据分别是-1、5、12。输入格式:输入一个数。输出格式:直接输出保留6位小数的结果,没有其它任何附加字符,没有宽度控制。输入样例:11输出样例:0.999912输入样例:7输出样例:8.000000#include<stdio.h>#include<math.h>main(){ int x; double y; s...

2020-02-08 14:45:21 3299

原创 7-299 计算个人所得税 (25分)

假设个人所得税为:税率×(工资−1600)。请编写程序计算应缴的所得税,其中税率定义为:当工资不超过1600时,税率为0;当工资在区间(1600, 2500]时,税率为5%;当工资在区间(2500, 3500]时,税率为10%;当工资在区间(3500, 4500]时,税率为15%;当工资超过4500时,税率为20%。输入格式:输入在一行中给出非负工资。输出格式:在一行输出个人所...

2020-02-08 14:37:48 620

原创 7-301 判断一个三位数是否为水仙花数 (30分)

本题要求编写程序,判断一个给定的三位数是否为水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。输入格式:输入在一行中给出一个需要判断的整数 N(100≤N≤999)。输出格式:如果N是水仙花数,则在一行中输出Yes,否则输出No。如果N不是三位数,则输出Invalid Value.。输入样例1:153输出样例1:Yes输入样例2:500输出样例2:No...

2020-02-08 14:26:02 8207

原创 7-302 两个数的简单计算器 (20分)

本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。输入格式:输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。输出格式:当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符...

2020-02-08 14:14:27 712

原创 7-303 成绩转换 (30分)

本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:大于等于90分为A;小于90且大于等于80为B;小于80且大于等于70为C;小于70且大于等于60为D;小于60为E。输入格式:输入在一行中给出一个整数的百分制成绩。输出格式:在一行中输出对应的五分制成绩。输入样例:90输出样例:A#include<stdio.h>main(){ int n...

2020-02-08 13:51:01 577

原创 7-310 求组合数 (20分)

本题要求编写程序,根据公式C​n​m​​=​n!/(n−m)!​​m!​​算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。输入格式:输入在一行中给出两个正整数m和n(m≤n),以空格分隔。输出格式:按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。输入样例:...

2020-02-08 13:30:29 427

原创 7-87 选择法排序之过程 (15分)

本题要求使用选择法排序,将给定的n个整数从小到大排序后输出,并输出排序过程中每一步的中间结果。选择排序的算法步骤如下:第0步:在未排序的n个数(a[0]〜 a[n−1])中找到最小数,将它与 a[0]交换;第1步:在剩下未排序的n−1个数(a[1] 〜 a[n−1])中找到最小数,将它与 a[1] 交换;……第k步:在剩下未排序的n−k个数()中找到最小数,将它与 a[k] 交换;……...

2020-02-08 12:45:38 9963

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除