bobo

浅谈JavaScript闭包、this指针、作用域(一)

大城市里の小女人 提交于 2021-02-18 12:31:52
认识闭包: 闭包,是指 有权限访问到其他函数作用域的变量的函数 给一个例子: function outer () { var name = ' HelloTF ' ; return function () { console.log (name); } } var getName = outer(); getName(); // HelloTF 函数outer执行后返回一个内部的匿名函数,并把返回的结果赋值给全局变量result,在全局环境中在此执行result,得到了outer函数内部的变量name。 仅从闭包的定义来看并没有什么感觉,不妨从中摘出几个关键词,结合JavaScript的原理: 作用域,作用链,活动对象,变量对象 作用域 在ES6之前,JavaScript没有块级作用域,经常会遇到变量提升了或者使用闭包的时候出错的问题。ES6为了解决这些问题,添加了块级作用域,此处稍后再谈。ES5中它的作用域只有两个—— 全局作用域和函数作用域。 全局作用域,是在全局都可以访问的,对前端开发者而言,一般指window; 函数作用域,即仅在函数{}内的代码区域,在函数内部声明的变量,在函数外是不可访问的。 这样就可以保证函数和变量的有序访问。在上述例子中,函数内部的name变量在函数体外无法直接访问,若我们必须要访问name,就得使用闭包,即返回一个匿名函数,输出name。

关于用for循环语句实现在屏幕上打印特殊图案入门级编程题目的解法

强颜欢笑 提交于 2021-01-31 13:55:02
(编程小白,目前大学本科在读,最近在学习c语言,记录一下学习心得,若有写的不对的,还望大佬们指正) (题目来源于牛客网题库)链接:https://www.nowcoder.com/ta/beginner-programmers 例题: KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。 输入描述: 多组输入,一个整数(2~20)。 输出描述: 针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。 输入: 2 输出: * * * * * * * * * 输入: 3 输出: * * * * * * * * * * * * * * * * 分析: 这类题的做法比较多,因为for循环的套娃特性,每个人有每个人的逻辑,对于循环语句的控制变化多样,所以很长时间我都是试探着做这类题,每次做都头疼。后来做多了,发现了一个方法。 灵感源于高中控制变量的思想。 模版: # include <stdio.h> int main ( void ) { int n = 0 ; int i = 0 , j = 0 ; while ( ~ scanf ( "%d" , & n ) ) { for ( i = 0 ; i < n ; i ++ ) { for ( j = 0 ; j < ? ? ; j ++ ) { printf ( "* " ) ; }

爬虫验证码处理与IP处理

一曲冷凌霜 提交于 2021-01-12 04:16:59
引入 相关的门户网站在进行登录的时候,如果用户连续登录的次数超过3次或者5次的时候,就会在登录页中动态生成验证码。通过验证码达到分流和反爬的效果。   - 1.对携带验证码的页面数据进行抓取    - 2.可以将页面数据中验证码进行解析,验证码图片下载到本地    - 3.可以将验证码图片提交给三方平台进行识别,返回验证码图片上的数据值         - 云打码平台:          - 1.在官网中进行注册(普通用户和开发者用户)        - 2.登录开发者用户:      - 1.实例代码的下载(开发文档-》调用实例及最新的DLL-》PythonHTTP实例下载)      - 2.创建一个软件:我的软件-》添加新的软件      -3.使用示例代码中的源码文件中的代码进行修改,让其识别验证码图片中的数据值 代码展示: # 该函数就调用了打码平台的相关的接口对指定的验证码图片进行识别,返回图片上的数据值 def getCode(codeImg): # 云打码平台普通用户的用户名 username = ' bobo328410948 ' # 云打码平台普通用户的密码 password = ' bobo328410948 ' # 软件ID,开发者分成必要参数。登录开发者后台【我的软件】获得! appid = 6003 # 软件密钥,开发者分成必要参数。登录开发者后台

【1.5】SpringCloud入门之Eureka consumer OpenFeign

让人想犯罪 __ 提交于 2020-12-24 01:42:22
用maven创建一个eureka-consumer-feign 1.引入springcloud对应的pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> 2.新建启动类,服务调用类,请求入口类 2.1 EurekaConsumerFeignApplication package com.pimee; import org.springframework.boot.SpringApplication;

javaEE开发案例——购物车

穿精又带淫゛_ 提交于 2020-08-09 20:10:23
一、页面 流程:登录页面(login.jsp)——>购物大厅页面(hall.jsp)——>购物车页面(showMyCart.jsp)——>订单页面(myorder.jsp)——>订单确认页面(orderOK.jsp) 二、页面+控制 加上控制逻辑之后: 登录页面(login.jsp)—>登录控制页面(GoHallUIServlet)—>购物大厅页面(hall.jsp)—>购物控制页面(ShoppingClServlet)—>购物车页面(showMyCart.jsp)—>订单控制页面(GoMyOrderServlet)—>订单页面(myorder.jsp)—>(订单提交处理SubmitOrderServlet)—>订单确认页面(orderOK.jsp) 三、页面+控制+DAO 后台数据库,对应四张表:分别是 用户表uses:(user_id,user_name,user_pwd,user_email,user_tel,user_grade) 书籍表books:(book_id,book_name,book_price,book_publisher,book_num<库存>) 订单分为订单表和订单细节表: orders(order_id,user_id,order_total<定价总价>,order_time(下订单时间)) orderdetails(order_id,book_id

python网络爬虫——requests高阶部分:模拟登录与验证码处理

家住魔仙堡 提交于 2020-05-07 17:36:54
云打码平台【处理各类验证码的平台】 注册:普通用户和开发者用户 登录: 登录普通用户(查看余额) 登录开发者用户: 创建一个软件:我的软件->创建软件 下载示例代码:开发者中心->下载最新的DLL->pythonHttp示例代码下载 一般点击登录按钮的请求都是post请求 cookie的作用,服务器使用cookie记录客户端的状态:经典:免密登录 服务端创建,客户端存储 有有效时长,动态变化 引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: import requests if __name__ == " __main__ " : # 张三人人网个人信息页面的url url = ' http://www.renren.com/289676607/profile ' # 伪装UA headers= { ' User-Agent ' : ' Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 ' , } # 发送请求,获取响应对象 response = requests

Iframe自动适应宽度和高度(both IE and Firefox are ok)

吃可爱长大的小学妹 提交于 2020-03-17 01:04:42
只需修改框架页 <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html xmlns ="http://www.w3.org/1999/xhtml" > < head > < meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" /> < title > iframe </ title > </ head > < body > < script type ="text/javascript" > function SetCwinHeight(){ var bobo = document.getElementById( " bobo " ); // iframe id if (document.getElementById){ if (bobo && ! window.opera){ if (bobo.contentDocument && bobo.contentDocument.body.offsetHeight){ bobo.height = bobo.contentDocument.body

超级简单/方便--不刷新页面---刷新数据之--幕后黑手---XMLHTTP---介绍/用法

心已入冬 提交于 2020-03-03 06:48:59
-------------就是下面这个很简单的javascript函数SEND(STR,URL)---------------------- 使用到的是XMLDOM和XMLHTTP对象.用这种技术的好处是:全JS控制,方便/简单,比RDS或者remote好多了.(前提:服务器端和客户端都必须安装IE5或者更高版本),在俺贴的那个无刷新在线信息功能使用的也是这种技术.有兴趣的朋友可以看看… function Send ( Str , URL ) //STR参数是传入的XML数据,你也可以传入其他文本数据. //不过这个函数需要服务器端处理之后返回XML数据,你也可以修改一下 //URL参数表示你所要处理数据的ASP文件地址 { var Http = new ActiveXObject ( "Microsoft.XMLHTTP" ) //建立XMLHTTP对象 var Dom = new ActiveXObject ( "Microsoft.XMLDOM" ) //建立XMLDOM对象 Http . open ( "POST" , URL , false ) //第一个参数的意思是,用"POST"方式发送数据.可以大到4MB,也可以换为"GET".只能256KB //第2个参数的意思是数据发送到哪个文件处理 //第3个参数意思是同步或异步方式.TRUE为异步,FALSE为同步 Http

[题解]2018湘潭邀请赛

大憨熊 提交于 2020-01-30 14:25:13
A.Easy h-index 题目描述 The h-index of an author is the largest h where he has at least h papers with citations not less than h. Bobo has published many papers. Given a0, a1, a2 ,..., an which means Bobo has published a i papers with citations exactly i , find the h-index of Bobo. 输入 The input consists of several test cases and is terminated by end-of-file. The first line of each test case contains an integer n . The second line contains ( n + 1) integers a0 , a1 , ... , an . 输出 For each test case, print an integer which denotes the result. • 1 ≤ n ≤ 2 · 10 5 • 0 ≤ ai ≤ 10 9 • The sum of n does not

学习笔记day1 python的认识

心不动则不痛 提交于 2020-01-02 18:09:45
   首先:python是一门动态解释性的强类型定义语言 Python 的优缺点 先看优点 Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂。 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。 再看缺点: 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的