自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 严格模式及高阶函数及闭包函数

严格模式可以应用到整个脚本或个别函数中。因此在使用时,我们可以将严格模式分为为脚本开启严格模式和为函数开启严格模式两种情况。1. 为脚本开启严格模式有的 script 基本是严格模式,有的 script 脚本是正常模式,这样不利于文件合并,所以可以将整个脚本文件放在一个立即执行的匿名函数之中。这样独立创建一个作用域而不影响其他 script 脚本文件。<script> (function (){    "use strict"; var num = 10;    fu

2021-06-30 11:34:04 103

原创 改变函数内部 this 指向call apply bind

函数声明方式 function 关键字 (命名函数)function fun(){}函数表达式 (匿名函数)var fun=function(){}new Function()var fn = new Function(‘参数1’,‘参数2’…, ‘函数体’)1Function 里面参数都必须是字符串格式2第三种方式执行效率低,也不方便书写,因此较少使用3所有函数都是 Function 的实例(对象)4函数也属于对象函数的定义方式//函数的调用方式// 1. 普通函数func.

2021-06-28 17:24:26 79

原创 Object.defineProperty() 定义新属性或修改原有的属性。

Object.defineProperty() 定义新属性或修改原有的属性。Object.defineProperty(obj, prop, descriptor)Object.defineProperty() 第三个参数 descriptor 说明: 以对象形式 { } 书写1.value: 设置属性的值 默认为undefined2.writable: 值是否可以重写。true | false 默认为false3.enumerable: 目标属性是否可以被枚举。true | false

2021-06-28 10:43:59 266

原创 类的本质以及类中新增的方法

class本质还是function.(很多和构造方法一致)类的所有方法都定义在类的prototype属性上类创建的实例,里面也有__proto__ 指向类的prototype原型对象4.所以ES6的类它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。5.所以ES6的类其实就是语法糖.语法糖:语法糖就是一种便捷写法. 简单理解, 有两种方法可以实现同样的功能, 但是一种写法更加清晰、方便,那么这个方法就是语法糖ES5 中的新增方.

2021-06-24 20:02:50 129

原创 call()利用原型对象继承父类型方法

ES6之前并没有给我们提供 extends 继承。我们可以通过构造函数+原型对象模拟实现继承,被称为组合继承。** call()**调用这个函数, 并且修改函数运行时的 this 指向fun.call(thisArg, arg1, arg2, …)thisArg :当前调用函数 this 的指向对象arg1,arg2:传递的其他参数*借用构造函数继承父类型属性核心原理: 通过 call() 把父类型的 this 指向子类型的 this ,这样就可以实现子类型继承父类型的属性。 funct

2021-06-24 14:28:55 274

原创 原型对象prototype和原型链

JavaScript的成员查找机制:1.当访问一个对象的属性(包括方法)时,首先查找这个对象自身有没有该属性。2.如果没有就查找它的原型(也就是 __proto__指向的 prototype 原型对象)。3.如果还没有就查找原型对象的原型(Object的原型对象)。依此类推一直找到 Object 为止(null)。__proto__对象原型的意义就在于为对象成员查找机制提供一个方向,或者说一条路线。三、原型对象中this的指向this指向对象实例四、利用原型对象扩展内置对象方法 Arr..

2021-06-24 10:42:38 58

原创 prototype原型对象

1.prototype:是一个对象,作用是共享方法,节约内存。Star.prototype.sing=function(){console.log('我爱唱歌’);}console.log(demo.sing===demo.sing);--------true2.对象都会有一个_proto__属性指向构造函数的prototype对象。之所以我们能够使用构造函数prototype对象的属性和方法,就是因为对象的_proto_原型的存在_proto_对象原型等价于原型对象prototypeS

2021-06-23 20:53:27 108

原创 爬虫初始

爬虫在使用场景中的分类:1.通用爬虫:抓取系统重要组成部分,抓取的是一整张页面数据2.聚焦爬虫:是建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容3.增量爬虫:检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据。反爬机制:门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取反反爬策略:爬虫程序可以通过制定相关的策略或者技术手段,破解门户门户网站中具备的反爬机制,从而获取信息robots.txt协议:君子协议,规定了网站中哪些数据可以被爬虫爬取,哪

2020-10-12 20:09:56 54

原创 进程、线程和协程的区别

1.1 进程进程是具有⼀定独⽴功能的程序关于某个数据集合上的⼀次运⾏活动,进程是系统进⾏资源分配和 调度的⼀个独⽴单位。每个进程都有⾃⼰的独⽴内存空间,不同进程通过进程间通信来通信。由于进 程⽐较重量,占据独⽴的内存,所以上下⽂进程间的切换开销(栈、寄存器、虚拟内存、⽂件句柄 等)⽐较⼤,但相对⽐较稳定安全。1.2线程线程是进程的⼀个实体,是CPU调度和分派的基本单位,它是⽐进程更⼩的能独⽴运⾏的基本单位. 线程⾃⼰基本上不拥有系统资源,只拥有⼀点在运⾏中必不可少的资源(如程序计数器,⼀组寄存器和栈)

2020-09-25 17:50:34 77

原创 图片下载器(gevent)

1 import urllib.request 2 import gevent 3 from gevent import monkey 4 5 monkey.patch_all() 6 7 def download(img_name,img_url): 8 req=urllib.request.urlopen(img_url) 9 10 img_content=req.read() 11 12 with open(img_name,...

2020-09-25 17:03:37 104

原创 生成器(python)和协程

⽣成器是⼀类特殊的迭代器使⽤了yield关键字的函数不再是函数,⽽是⽣成器.(使⽤了yield的函数就是⽣成器)yield关键字有两点作⽤:保存当前运⾏状态(断点),然后暂停执⾏,即将⽣成器(函数)挂起2.将yield关键字后⾯表达式的值作为返回值返回,此时可以理解为起到了return的作用 1 def create_num(all_num): 2 print("----1----") 3 num_count=0 4 a,b=0,1 5 whi

2020-09-24 18:28:44 102

原创 迭代器

迭代是访问集合元素的一种方式。1.迭代器是⼀个可以记住遍历的位置的对象。迭代器对象从集合 的第⼀个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。如何判断⼀个对象是否可以迭代可以使⽤ isinstance() 判断⼀个对象是否是 Iterable 对象from collections import Iterable # 使⽤isinstance() 函数检测某个对象是否是⼀个可迭代的对象 # 列表是可迭代对象 result = isinstance([1,2], I

2020-09-24 09:40:43 116

原创 多任务文件夹中的文件copy(利用队列和进程池)

1 from multiprocessing import Pool 2 from multiprocessing import Manager 3 import os 4 5 def copy_file(q,filename,old_file_name,new_file_name): 6 #print("模拟copy文件从%s======>到%s拷贝%s文件" %(old_file_name,new_file_ name,filename)) 7 8..

2020-09-23 15:24:30 174

原创 进程间的通信

@进程间通信:1.之前学过socket,完成客户端与服务器的通信2.通过队列完成进程之间的通信: 1 import multiprocessing 2 3 def send_msg(q): 4 """发送数据""" 5 data=[11,22,33,44] 6 for temp in data: 7 q.put(temp) 8 print("数据已经下载完毕。。。") 9 10 def analysis_data(q

2020-09-22 11:07:29 113

原创 机器学习(1)英语

the state of the art 有技术,先进的implementing and deploying these algorithms实现和应用这些算法

2020-09-21 21:45:50 370

原创 同步,互斥锁解决多线程资源共享问题

@同步,互斥锁解决多线程资源共享问题 1 import threading 2 import time 3 4 g_num=0 5 def test1(temp): 6 7 global g_num 8 mutex.acquire() 9 for i in range(temp): 10 g_num+=1 11 mutex.release() 12 print(g_num) 13 14

2020-09-21 10:49:34 129

原创 多线程共享全局变量(带args参数)

@多线程共享全局变量(带args参数) 1 import threading 2 import time 3 4 g_num=[11,22] 5 6 def test1(temp): 7 temp.append(100) 8 print("---test1---%s"%str(temp)) 9 10 def test2(temp): 11 print("---test2---%s"%str(temp)) 12 13 def mai

2020-09-20 11:06:47 295

原创 多线程共享全局变量

1 import threading  2 import time  3  4 g_num=[11,22]  5 def test1(temp):  6     temp.append(100)  7     print("—test1—%s"%str(temp))  8  9 def test2(temp): 10&nb

2020-09-20 10:58:30 64

空空如也

空空如也

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

TA关注的人

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