index函数

JS 数组 常用方法

房东的猫 提交于 2020-01-06 23:34:51
一、数组 1、function(value, index, array) {} 【格式:】 function (value, index, array) => { // value 指 数组当前遍历的值, index 指 数组当前遍历的下标, array 指 当前数组 // ... 自定义函数行为 // return ...; } 2、Array.map(function() {})   返回值:一个新数组。   简单理解为:此方法用于 根据 自定义执行函数 处理数组中的每个元素,并作为一个新数组 返回,不会改变原来的数组(除非主动修改原数组的值)。 【举例:给数组中的每个元素值加 6,并生成一个新数组】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 输出 [1, 2, 3, 4, 5] let newArr = arr.map((value, index, array) => { // value 指 数组当前遍历的值, index 指 数组当前遍历的下标, array 指 当前数组 return array[index] += 6; }); console.log(newArr); // 输出 [7, 8, 9, 10, 11] console.log(arr === newArr); // 输出 false console

flask之路由详解

爱⌒轻易说出口 提交于 2020-01-06 22:04:22
目录 一、路由的本质 二、CBV 2.1 使用views.MethodView类 2.2 指定响应的请求方式类型 2.3 指定装饰器修饰 三、路由参数 四、路由转换器 4.1 自定义转换器 一、路由的本质 flask的路由直接在函数上使用装饰器的话非常的乱,那可不可以想django一样把路由都写到一起呢。 查看源码,我们知道 原来的路由就是一个装饰器 ,装饰器的第一个参数就是路由规则 实际上在 装饰器内的闭包函数最终调用的是 def add_url_rule(self,rule,endpoint=None,view_func=None,provide_automatic_options=None,**options): ''' rule:路由规则 endpoint:反向解析别名,和CBV中as_view(name=...)的name是一样的。因为在源码内部,实际上也会去取参数view_func的__name__也就是指定的函数或类的名字 view_func:响应对象 ''' 因此我们可以直接改写路由。 将原来装饰器修饰的路由,改写为使用 add_url_rule 的路由 from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "ok" if __name__ == '_

js高级进阶之高阶函数篇

只愿长相守 提交于 2020-01-06 14:43:58
学会高阶函数是每一个前端开发者走向高级阶段的必经之路,虽然你可以在业务代码中不去使用,但你总需要去读懂别人的代码吧,如果你不熟悉这些高阶使用方法,必然会遭到鄙视嘲笑,甚至强行复制粘切不明大意的胡乱修改会带来灾难性的后果,当然学习高阶函数也不仅仅是要去使用几个高阶函数方法,最主要的是领略其设计思想,为自己之后写出牛逼点的代码做基础。 高阶函数概念 一等函数 您可能听说过JavaScript将函数视为一等公民。那是因为在JavaScript或任何其他函数式编程语言中,函数是对象。 在JavaScript中,函数是一种特殊类型的对象。他们是Function对象。 在JavaScript中,您可以使用其他类型(如对象,字符串或数字)执行的所有操作函数都可以执行。您可以将它们作为参数传递给其他函数(回调函数),将它们分配给变量并传递它们等等。这就是JavaScript中的函数被称为First-Class函数(一等函数)的原因。 与之相对应的就是: 高阶函数 高阶函数是对其他函数进行操作的函数,可以将它们作为参数或通过返回它们。简单来说,高阶函数是一个函数,它接收函数作为参数或将函数作为输出返回。 js中常见的高阶函数 map 定义:map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。 注意: map()不会对空数组进行检测

ES5新增方法

偶尔善良 提交于 2020-01-04 09:23:17
数组方法 forEach()方法:遍历数组 语法 arr.forEach(function(value, index, array) {}) value:数组当前项的值 index:数组当前的索引 array:数组对象本身 var arr = [1, 2, 3]; arr.forEach(function(value, index, array) { console.log('每个数组元素' + value); console.log('每个数组元素索引号' + index); console.log('数组本身' + array); }) 输出 每个数组元素1 每个数组元素索引号0 数组本身1,2,3 每个数组元素2 每个数组元素索引号1 数组本身1,2,3 每个数组元素3 每个数组元素索引号2 数组本身1,2,3 示例 var arr = [1, 2, 3]; var sum = 0; arr.forEach(function(value, index, array) { sum += value; }) console.log(sum);//6 filter()方法:筛选数组 arr.filter(function(value, index, array) {}) 注意:返回一个新数组 value:数组当前项的值 index:数组当前的索引 array:数组对象本身 示例1

Django

﹥>﹥吖頭↗ 提交于 2020-01-03 00:03:57
第十二章 Django框架 12.1 HTTP协议 12.1.1 HTTP简介 超文本传输协议 Hyper Text Transfer Protocol 是一种用于分布式、协作式和超媒体信息系统的应用层协议 HTTP是万维网的数据通信的基础 HTTP有很多应用,但最著名的是用于web浏览器和web服务器之间的双工通信 HTTP是一个客户端终端和服务器端请求和响应的标准 12.1.2 HTTP 请求/响应的步骤 客户端连接到Web服务器 一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接 发送HTTP请求 通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成 服务器接受请求并返回HTTP响应 Web服务器解析请求,定位请求资源,服务器将资源复本写到TCP套接字,由客户端读取,一个响应由状态行、响应头部、空行和响应数据4部分组成 释放连接TCP连接 若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求 客户端浏览器解析HTML内容 客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码,然后解析每一个响应头

Django中间件

不打扰是莪最后的温柔 提交于 2020-01-02 21:46:09
中间件 中间件介绍 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。 说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。 我们一直都在使用中间件,只是没有注意到而已,打开Django项目的Settings.py文件,看到下图的MIDDLEWARE配置项。 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages

Django框架 之 中间件

别来无恙 提交于 2020-01-02 21:44:03
Django框架 之 中间件 浏览目录 中间件介绍 自定义中间件 中间件的执行流程 中间件版登录验证 一、中间件介绍 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。 我们一直都在使用中间件,只是没有注意到而已,打开Django项目的Settings.py文件,看到下面的MIDDLEWARE配置项。 1 2 3 4 5 6 7 8 9 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware' , 'django.contrib.sessions.middleware.SessionMiddleware' , 'django.middleware.common.CommonMiddleware' , 'django.middleware.csrf.CsrfViewMiddleware' , 'django.contrib.auth.middleware.AuthenticationMiddleware

enumerate函数

穿精又带淫゛_ 提交于 2020-01-02 01:42:30
enumerate()说明: enumerate()是python的内置函数 enumerate在字典上是枚举、列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 enumerate多用于在for循环中得到计数 例如对于一个seq,得到: (0, seq[0]), (1, seq[1]), (2, seq[2]) 1 enumerate()返回的是一个enumerate对象,例如: enumerate()使用 如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写: 1 list1 = ["这", "是", "一个", "测试"] 2 for i in range (len(list1)): 3 print i ,list1[i] 上述方法有些累赘,利用enumerate()会更加直接和优美: 1 list1 = ["这", "是", "一个", "测试"] 2 for index, item in enumerate(list1): 3 print index, item 4 >>> 5 0 这 6 1 是 7 2 一个 8 3 测试 enumerate还可以接收第二个参数,用于指定索引起始值,如: 1 list1 = ["这", "是", "一个", "测试"] 2 for

学习js的五个不良编码习惯

南楼画角 提交于 2020-01-01 17:25:39
本文根据外网文章译制而来   原文:https://dmitripavlutin.com/unlearn-javascript-bad-coding-habits/   译者:前端小智   为了保证的可读性,本文采用意译而非直译。   在阅读JavaScript代码时,你是否有过这种感觉   你几乎不明白代码的作用?   代码使用了很多 JavaScript 技巧?   命名和编码风格太过随意?   这些都是不良编码习惯的征兆。   在这篇文章中,我描述了JavaScript中常见的5种不良编码习惯。重要的是,本文会给出一些可行的建议,如何的摆脱摆脱这些习惯。   1.不要使用隐式类型转换   JavaScript是一种松散类型的语言。如果使用得当,这是一个好处,因为它给你带来了灵活性。   大多数运算符 +-*/==(不包括 ===)在处理不同类型的操作数时会进行隐式转换。   语句 if(condition){...}, while(condition){...}隐式地将条件转换为布尔值。   下面的示例依赖于类型的隐式转换,这种有时候会让人感到很困惑:   console.log("2" + "1"); // => "21"   console.log("2" - "1"); // => 1   console.log('' == 0); // => true  

JS 的5个不良编码习惯

こ雲淡風輕ζ 提交于 2020-01-01 17:25:22
1.不要使用隐式类型转换 JavaScript是一种松散类型的语言。如果使用得当,这是一个好处,因为它给你带来了灵活性。 大多数运算符 + - * / == (不包括 === )在处理不同类型的操作数时会进行隐式转换。 语句 if ( condition ){...} , while ( condition ){...} 隐式地将条件转换为布尔值。 下面的示例依赖于类型的隐式转换,这种有时候会让人感到很困惑: console . log ( "2" + "1" ); // => "21" console . log ( "2" - "1" ); // => 1 console . log ( '' == 0 ); // => true console . log ( true == []); // -> false console . log ( true == ![]); // -> false 过度依赖隐式类型转换是一个坏习惯。首先,它使你的代码在边缘情况下不太稳定。其次,增加了引入难以重现和修复的bug的机会。 现在咱们实现一个获取对象属性的函数。如果属性不存在,函数返回一个默认值 function getProp ( object , propertyName , defaultValue ) { if (! object [ propertyName ]) {