fn

js部分高级内容

守給你的承諾、 提交于 2020-03-27 06:06:01
数据类型 基本:String,Number,boolean(true,false),undefined(undefined),null(null) 引用类型:Object,Function(可以执行),Array(数值下标,有序) 特别地,null无值的对象(用来清空对象),NaN无值的数字,undefined不存在或者存在未赋值 typeof 返回数据类型的字符串形式(小写) 判断字符串,数值,布尔,函数可行。未定义和undefined都返回undefined也勉强可,null和其他引用类型返回object不可(null和undefined用===) instanceof判断实例对象与类(沿原型链向上找)的关系,返回布尔值 var声明局部变量(不可删),直接赋值沿原型链向上找成window的一个属性(可删) 沿作用域链找不到没定义报错,沿原型链找不到是undefined 只有通过属性改变的引用对象才使相同的改变 obj.age=15//有效 obj={age:15}//无效,更改了引用地址 function fn(obj){console.log(obj)}//函数传入的obj是传入参数的一个引用值,与原变量无关(重要),一种基本值,一种引用值(地址) 自动释放和垃圾回收器回收 function fn(){var b={name:'alice'}} //未被引用的才会被释放回收

Python中Web框架编写学习心得

徘徊边缘 提交于 2020-03-24 22:21:15
学习廖雪峰老师的 Python实战教程 ,在Web框架这部分看了大致一个多礼拜,前面的知识学的不够扎实,由于比较复杂,因此在这里总结下,也算是巩固了。 先看下框架的调用代码: app = web.Application(loop=loop, middlewares=[logger_factory, response_factory]) init_jinja2(app, filters=dict(datetime=datetime_filter)) add_routes(app, 'handlers') add_static(app) 使用web.Application类创建aiohttp server——app,其中loop为Eventloop用来处理HTTP请求,middlewares为中间件,在这里用来记录日志并处理handler返回的数据为web.response对象,这里看下 response_factory 的代码 async def response_factory(app, handler): async def response(request): logging.info('Response handler...') #获取handler的返回值,根据返回值的不同类型进行处理 r = await handler(request) print(type(r)) if

attachEvent和addEventListener

喜欢而已 提交于 2020-03-24 21:49:20
曾经写过一篇随笔, attachEvent和addEventListener ,跟本文内容有很多相似之处 本文链接: javascript之事件绑定 1、原始写法 <div onclick="alert('you clicked me just now);'">click me</div> 在刚开始学习前端的时候,我们不免这么将事件绑定写在html中,后来我们想将html和js脚本进行分离便这么写 <div id="test">click me</div> <script type="text/javascript"> test.onclick=function(){ alert("you click me just now"); }; </script> 这么写其实和上一种写法在执行上是没有任何分别的,只是他略微显得“高大上”一点。在此,需要感谢八楼@con的提醒,其实他们还是有一点点的区别,因为它们的执行环境是稍微有点不同的,其函数作用域中包含的对象是不一样的。详情可看本文的留言。 当我们写更复杂一些的脚本的时候,发现这种“ 对象.事件=事件处理函数 ”方式并不好,因为后面的事件明显得会覆盖前一个事件处理函数,多次事件绑定的结果往往是仅执行最后一个事件处理函数,可以看 attachEvent和addEventListener 文中示例。 后来,我们必须在实际开发中放弃这种

Go语言调度器之创建main goroutine(13)

空扰寡人 提交于 2020-03-23 16:42:36
本文是《Go语言调度器源代码情景分析》系列的第13篇,也是第二章的第3小节。 上一节我们分析了调度器的初始化,这一节我们来看程序中的第一个goroutine是如何创建的。 创建main goroutine 接上一节,schedinit完成调度系统初始化后,返回到rt0_go函数中开始调用newproc() 创建一个新的goroutine用于执行mainPC所对应的runtime·main函数,看下面的代码: runtime/asm_amd64.s : 197 # create a new goroutine to start program MOVQ $runtime·mainPC(SB), AX# entry,mainPC是runtime.main # newproc的第二个参数入栈,也就是新的goroutine需要执行的函数 PUSHQ AX # AX = &funcval{runtime·main}, # newproc的第一个参数入栈,该参数表示runtime.main函数需要的参数大小,因为runtime.main没有参数,所以这里是0 PUSHQ $0 CALL runtime·newproc(SB) # 创建main goroutine POPQ AX POPQ AX # start this M CALL runtime·mstart(SB) # 主线程进入调度循环

jQuery中$.fn的用法示例介绍

我只是一个虾纸丫 提交于 2020-03-19 01:27:59
jQuery中$.fn的用法示例介绍 $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。 如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了. 那么你可以这样子:$("#div").abc(); jQuery为开发插件提拱了两个方法,分别是: jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。 jQuery.fn.extend(object);给jQuery对象添加方法。 fn是什么东西呢。查看jQuery代码,就不难发现。 复制代码 代码如下: jQuery.fn = jQuery.prototype ={    init: function( selector, context ){//....     //...... }; 原来 jQuery.fn =jQuery.prototype.对prototype肯定不会陌生啦。 jQuery便是一个封装得非常好的类,比如我们用语句 $("#btn1") 会生成一个 jQuery类的实例。 jQuery.extend(object); 为jQuery类添加添加类方法,可以理解为添加静态方法。如: 复制代码 代码如下: $.extend({   add

Mac Android Studio 快捷键汇总

久未见 提交于 2020-03-18 13:41:58
mac上按键符号 ⌥ : option / alt ⇧ : shift ⌃ : control ⌘ : command ⎋ : esc (一)查找/查看相关 搜索任意内容 双击 sft 当前文件查找/替换 cmd + F / cmd + R 使用cmd + G,sft + cmd + G,跳到下一个/上一个高亮的变量 全局查找/替换 sft + cmd + F / sft + cmd + R 全局搜索类 cmd + O 全局搜索类/方法/参数 opt + cmd + O 打开最近访问的文件列表 cmd + E 类/方法在全局项目中引用情况 opt + fn + F7 / cmd + 鼠标点击 类/方法在当前文件中引用情况 cmd + fn + F7 方法被调用层级结构 ctr + opt + H 查看接口的实现 opt + cmd + B 跳转至超类的方法 cmd + U 跳转至第几行 cmd + L 返回到上次编辑位置 cmd + [ / ] opt + cmd + ← / → 当前编辑的文件中结构快速导航 cmd + fn + F12 列出函数方法一系列的有效参数 cmd + P 跳转至错误或警告 fn + F2 查看类/方法的注释文档 fn + F1 (二)控制操作相关 Surround with快速调出if,for,try…catch,while等环绕代码 opt +

js中的原型

天涯浪子 提交于 2020-03-16 23:42:09
对象的__proto__ js中万物皆对象,每个数据都会有一个__proto__的属性,这个属性叫隐式原型。 一个对象(obj)的隐式原型( proto )指向构造该对象(obj)的构造函数(Object())的原型属性(Object.prototype)。 这样做的原因是为了能够保证实例(obj)能够访问到在构造函数(Object())的原型属性(Object.prototype)中定义的属性和方法。 function createPerson ( ) { } console . log ( createPerson . prototype ) ; var p1 = new createPerson ( ) ; console . log ( p1 ) ; console . log ( p1 . __proto__ ) ; // 是一个对象,起名叫隐式原型 // 实例身上的隐式原型,是为了标记当前实例的来源函数的原型对象 函数对象的prototype 函数(Function)是一个特殊的对象,除了和其他对象一样有上述__proto__属性之外,还有自己特有的属性——原型(prototype),这个属性被描述成指针。他指向一个对象类型的数据,这个对象的用途就是包含所有将来使用该函数构造出来的可被共享的属性和方法(我们把这个对象叫做原型对象)。 function

进击的JQuery

北战南征 提交于 2020-03-16 10:37:16
进击的 JQuery 乱七八糟的关系呀 子集们: children([expr]) 父集: parent([expr]) 父集们: parents([expr]) 下一个兄弟: next([expr]) 下面所有的兄弟: nextAll([expr]) 上一个兄弟: prev([expr]) 上面所有的兄弟: prevAll([expr]) 兄弟们: siblings([expr]) 索引匹配 :eq(index) 匹配一个给定索引值的元素 :gt(index) 匹配所有大于给定索引值的元素 :lt(index) 匹配所有小于给定索引值的元素 :even 匹配所有索引值为偶数的元素,从 0 开始计数(即索引值0、2、4...) :odd 匹配所有索引值为奇数的元素,从 0 开始计数(即索引值1、3、5...) 获取文本 html() 返回标签 text() 返回文本 val() 返回value 属性操作 attr(name|pro|key,val|fn) 添加属性 $('a').attr({ 'href':'https://www.baidu.com' }); 查询属性 $('a').attr('href') removeAttr(name) prop(n|p|k,v|f) removeProp(name) 小技巧 && 解决加载过程中页面样式变化导致闪烁的问题 <body

jQuery基础知识

我的梦境 提交于 2020-03-16 03:53:30
表单筛选器 :text :password :file :radio :checkbox :submit :reset :button 例子: $(':checkbox') // 找到所有的checkbox 表单对象属性: :enabled :disabled :checked :selected 例子: 找到可用的input标签 <form> <input name="email" disabled="disabled" /> <input name="id" /> </form> $("input:enabled") // 找到可用的input标签 找到被选中的option: <select id="s1"> <option value="beijing">北京市</option> <option value="shanghai">上海市</option> <option selected value="guangzhou">广州市</option> <option value="shenzhen">深圳市</option> </select> $(":selected") // 找到所有被选中的optio 筛选器方法 下一个元素: $("#id").next() $("#id").nextAll() $("#id").nextUntil("#i2") 上一个元素: $("

从MACHINE_START开始

[亡魂溺海] 提交于 2020-03-14 03:32:19
注:下面的内容是以linux-2.6.38和mini6410为例进行学习的。 玩过或者移植过arm-linux的都应该知道在/arch/arm目录下有许多与具体处理器相关的目录,当然对于6410的话所对应的目录就是mach-s3c64xx,在里面找到与具体板子相关的文件mach-mini6410.c,没错,就是它。无论是出于想移植到新的内核还是出于想深入学习某一款arm等,对这个文件的学习是必不可少的。这个文件大部分内容是对平台设备(例如串口,LCD,Nand falsh等)的结构体初始化,在这个文件的最后有一个非常重要的宏: 1 MACHINE_START(MINI6410, "MINI6410") 2 /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ 3 .boot_params = S3C64XX_PA_SDRAM + 0x100, 4 5 .init_irq = s3c6410_init_irq, 6 .map_io = mini6410_map_io, 7 .init_machine = mini6410_machine_init, 8 .timer = &s3c24xx_timer, 9 MACHINE_END MINI6410这个宏在/arch/arm/tools/mach-types文件里定义: mini6410