自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于 forEach 到底能否改变原数组

今天朋友问我一道题,将 "kuai-shou-gong-cheng" 转化为 "KuaiShouGongCheng" 。我想着挺简单的,将字符串分割之后再使用 forEach 将分割后得到的数组的每个字符串的首字母大写,最后 join 即可。但是问题就来了,我发现在 forEach 里面无论怎么改变 item ,最后原数组都不会被改变,于是我就很好奇了,不是说好 forEach 能改变原数组嘛,怎么又没变化呢。那么下面我们就来搞清楚一下这个问题。先说结论:①当要改变的数组中的某个值是引用类.

2021-09-11 13:15:35 3515 2

原创 js 判断多个 array 和 object 相等

可能我们会直接想到使用 == 或者 === ,但其实这样是不能得到结果的,一致判定为 flase 。console.log([1, 1] == [1, 1]) // falseconsole.log([1, 1] === [1, 1]) // falseconsole.log([{}] == [{}]) // falseconsole.log([{}] === [{}]) // falseconsole.log({} == {}) // falseconsole.log({} =.

2021-08-29 17:31:48 201

原创 js 闭包

闭包指子函数可以访问外部作用域变量的函数特性,即使在子函数作用域外也可以访问。如果没有闭包那么在处理事件绑定,异步请求时都会变得困难。js 中所有函数都是闭包; 闭包一般在子函数本身作用域之外执行,即延伸作用域。1、基本使用获取数组中符合条件的值let arr = [2, 3, 5, 4, 1, 6];function between(a, b) { return function (v) { return v >= a && v <= b; }}

2021-07-11 20:23:04 121

原创 js 函数

1、匿名函数匿名函数没有函数名,它也不会做任何事情。通常将匿名函数和事件处理程序一起使用。函数是对象所以可以通过赋值来指向到函数对象的指针,当然指针也可以传递给其他变量。function() { console.log('hello');};let div = document.querySelector('div');div.addEventListener('click', function () { div.style.background = 'pink';});下面

2021-07-10 22:40:16 113

原创 js 垃圾回收

1、标记清除2、引用计数

2021-07-06 22:38:19 983

原创 Set 与 Map 数据结构

1、Set用于存储任何类型的唯一值,无论是基本类型还是对象引用。且只能保存值,没有键名。遍历顺序是添加的顺序,方便保存回调函数。Set 与 数组类似,但不同的是,它里面的元素是不重复的,如果有重复元素,Set 会自己找到重复元素并将其去掉。值得注意的是,Set 在查找重复元素时,使用的为全等(===)而非相等(==)。因此,像 1 和 '1' 出现在 Set 中时,不会被认为重复。let num = new Set(['1', 1, 2, 3, 4, 3]);console.log(num)

2021-07-05 23:30:14 212 1

原创 Array 数组

1、类型检测在前面typeof 和 instanceof中提到可以使用 arr instanceof Array 来判断一个对象是不是数组类型。同样的,Array 中自带一个方法 Array.isArray() 也可以检测一个对象是不是数组类型。console.log(Array.isArray([1, 2, 3])); // trueconsole.log(Array.isArray(3)); // false2、类型转换(1)转换为字符串console.log([1, ..

2021-07-04 22:37:27 218

原创 Math 和 Date

1、Math 常用方法(1)取最大最小值最大值:Math.max() ;最小值:Math.min()console.log(Math.max(1, 2, 3, 4, 5)); // 5console.log(Math.min(1, 2, 3, 4, 5)); // 1当这两个方法中的数据为数组时,是不能直接生效的:let arr = [1, 2, 3, 4, 5];console.log(Math.max(arr)); // NaN这种情况可以使用 apply() 方法:

2021-07-03 15:43:15 64

原创 Number 常用方法

(1)判断是否为整数:isInteger()(2)将字符串转换为整数:parseInt()(3)将字符串转换为浮点数:parseFloat()(4)四舍五入:toFixed()console.log(Number.isInteger(123)); // trueconsole.log(Number.isInteger(123.123)); // falseconsole.log(parseInt('123')); // 123console.log(parseInt('123.12

2021-07-03 12:43:26 1438

原创 String 常用方法

1、检索字符(1)charAt():返回在指定位置的字符。let str = 'hollow';console.log(str.charAt(2)); // l(2)indexOf():返回某个指定字符或字符串在字符串中首次出现的位置,若没有匹配到则返回 -1。let str = 'hollow';console.log(str.indexOf('o')); // 1console.log(str.indexOf('ollo')); // 1console.log(str.

2021-07-02 20:21:15 91

原创 模板字面量使用实例

1、加号(+)连接字符串以前使用最直接的将字符串和非字符串连接起来的方法就是使用 + 。let str = 'My age is ';let num = 18;console.log(str + num); // My age is 18这种方法虽然直观,但是当有多个这样的实例组合在一起时既容易出错,也不方便阅读。那么我们就可以使用模板字面量实现上述方式。2、模板字面量使用 `` 将字符串包含其中,使用 ${} 来将变量、表达式、函数等穿插在字符串中。let num1 =

2021-07-02 13:46:05 332 1

原创 typeof 和 instanceof

在 基础笔记第二篇就已经了解过了 typeof 操作符的用法:用来判断一个变量哪种数据类型。虽然在一般情况下 typeof 就已经可以满足一些使用需求,但是像如下情况,使用 typeof 就不太好区分了:let arr = [1, 2, 3]let obj = {};console.log(typeof arr); // objectconsole.log(typeof obj); // object可以看出,我们显然是想要知道 arr 是不是 Array 类型,但是 typeof

2021-07-02 10:48:00 95

原创 for 循环

适用于 continue 或 break 循环时,回到标签处的循环:for (let i = 0; i < 10; i++) { for (let j = 0; j < 10; j++) { console.log(i, j); }} // 最后一个输出为 9 9for (let i = 0; i < 10; i++) { for (let j = 0; j < 10; j++) { if (i + j >

2021-07-01 20:34:11 130

原创 js:栈内存和堆内存

在 js 中对数据的存储主要有两种形式:栈内存、堆内存。栈内存:主要负责存储基本数据类型的变量,包括Boolean、Number、String、Undefined、Null,**以及对象变量的指针。就像一个线性排列空间,每个数据的单元格大小都一样。堆内存:主要负责 Object 对象的存储。图1 栈内存与堆内存引出问题Q:const 定义的常量完全不能更改吗?A:const 定义的若是基本数据类型的常量,是无法更改的。但是,const 定义的若是 Object 对象,则是可以..

2021-07-01 16:57:49 230

原创 对象的简介

1、对象的作用用来封装信息,例如 person 变量,可封装其 name,age,sex等属性。let person = {};person.name = '张三';person.age = '26';person.sex = 'male';console.log(person); // {name: "张三", age: "26", sex: "male"}console.log(person.age); // 262、对象属性①对象的属性可以是任何数据类型,也可以是函数或

2021-07-01 16:01:08 247

原创 js:switch语句

switch 语句的输出截止与 default 无关。其结束方式有两种:①遇到 break 即退出;②运行到语句末尾退出。代码如下:let num = 4;switch(num) { default: // break; case 1: console.log('1'); break; case 2: console.log('2'); break; case 3: ..

2021-07-01 14:16:23 130

原创 js 轮播图

1、淡入淡出轮播图(1)html 代码:<body> <div class="father"> <ul class="box"> <li class="index"><img src="img/1.jpg" alt="图片无法显示"></li> <li><img src="img/2.jpg" alt="图片无法显示"></l

2021-06-29 11:00:59 80

原创 JS 语言基础笔记——第五篇(操作符)

前言一元操作符位操作符布尔操作符乘法操作符指数操作符假发cao'zuo

2021-05-29 16:19:07 118

原创 JS 语言基础笔记——第四篇(Symbol类型属性)

目录前言前言

2021-05-28 23:56:59 643

原创 JS 语言基础笔记——第三篇(Symbol类型、Object类型)

这里写目录标题前言一、Symbol类型二、Object类型每个 Object 实例都有如下属性和方法前言本篇笔记 JS 语言基础 第三篇。主要内容有:ES6 新增简单数据类型 Symbol;复杂数据类型 Object。一、Symbol类型二、Object类型对象其实就是一组数据或功能的集合。对象通过 new 操作符后跟对象类型的名称来创建。let obj = new Object();let obg1 = new Object; // 合法,但不推荐ECMAScript中的

2021-05-27 22:41:50 292

原创 JS 语言基础笔记——第二篇(typeof操作符、简单数据类型(不包括Symbol))

目录前言一、数据类型1、typeof操作符2、Undefined类型3、Null类型3、Boolean类型4、Number类型(1)整数(2)浮点数(3)值的范围(4)NaN(5)数值转换前言本篇笔记 JS 语言基础 第二篇。主要包含内容为:一、数据类型六种简单数据类型(原始类型):UndefinedNullBooleanNumberStringSymbol(ES6新增)未定义空布尔数值字符串符号复杂数据类型:Object(对象),是一种无序名值对的

2021-05-26 22:17:32 182

原创 JS 语言基础笔记——第一篇(script标签、变量声明关键字)

前言本篇笔记 JS 语言基础 第一篇。主要包含内容为:script 标签的可选属性;var、let、const 三个变量声明关键字的作用、相同点和不同点。一、scrpit 标签中的可选属性1、async:可选。表示应该立即开始下载脚本,但不能阻止其他页面动作。只对外部脚本文件有效。 2、charset:可选。使用 src 属性指定的代码字符集。很少用,因为大多数浏览器不在乎这个值。 3、crossorigin:可选。配置相关请求的 CORS(跨资源共享) 设置。默认不使用。 ①cross

2021-05-25 21:23:25 282

原创 机器视觉python+opencv函数库:一

对此图片进行操作:代码部分:第一步:import cv2# 导入opencv函数库img_test = cv2.imread(r"C:\Users\12044\Desktop\test.png")# 读取图像,img_test为原图名称cv2.imshow("image", img_test)# 显示图像,引号中的内容为图像显示窗口的名称,即“image”cv2.waitKey(0)# 等待事件触发,参数 0 表示永久等待。没有此代码,则图像一闪而过。第一步显示的图像:

2021-03-04 12:15:31 246 1

原创 pip安装opencv函数库后在pycharm上导入时报错

报错为:No module named ‘cv2解决办法:第一步:点击设置第二步:点击红圈处加号第三步:搜索 “opencv” ,选择 “opencv-python” 后,点击左下 “安装包” 即可。

2021-03-03 19:20:31 297 1

原创 python爬虫之Selenium数据爬取和数据可视化

本文爬取的数据为虎牙官方网站直播数据,仅获取了直播第一页的全部数据,对其进行了粗略的分析,数据获取时间为2021-01-03(22:00)。目录1 前置条件2 定位标签3 获取数据3.1 导入库和使用驱动器打开网页3.2 获取分类和人气两个数据4 使用pandas分析数据5 使用Matplotlib画图5.1 柱状图5.2 饼图1 前置条件在使用本文代码前,需先下载selenium库、matplotlib库、pandas库和相对应浏览器的相应版本的驱动。此处给出Chrome浏览器

2021-01-04 00:18:18 3340 20

空空如也

空空如也

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

TA关注的人

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