解析函数

JavaScript基础学习--08 JS作用域

微笑、不失礼 提交于 2020-01-18 02:51:42
Demos: https://github.com/jiangheyan/JavaScriptBase 一、浏览器 1、“JS解析器”(至少分为两步骤) 1.1 JS预解析(代码正式运行之前的准备工作) “找一些东西并形成一个 仓库 ”:var、function、参数 1.1.1 var a = 1; 找到var a = undefined (所有的变量在正式运行代码之前,都提前赋值:未定义;--》undefined) 1.1.2 function fn(){ alert(......); } 找到fn = function fn(){ alert(......); } (所有的函数在正式运行之前都是整个函数块) 1.1.3 预解析规则 : 1.1.3.1 遇到 重名 的: 只留一个 ------变量和函数重名,选择留下函数;同等级的留下后面那个(两个变量重名留后者;两个函数重名留后者) 1.1.3.2 表达式可以修改仓库中的值 1.1.3.2.1 表达式:+-*/ Number()...... 注意:函数只是一个声明,不是表达式 1.2 逐行解读代码 1 alert(a); // function a(){alert(4);} 2 var a = 1; // 表达式能改变仓库中(预解析仓库)的值---> a = 1 3 alert(a); // 1 4 5 function a(

Spring源码解析——如何阅读源码

耗尽温柔 提交于 2020-01-14 05:04:29
  最近没什么实质性的工作,正好有点时间,就想学学别人的代码。也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想。   手码不易,转载请注明: xingoo    这篇博文你可以了解到:   1 Spring jar包以及源码使用   2 简单的spring运行示例   3 利用断点调试程序,如何快速的阅读程序【快捷键等的使用】   这次阅读的源码比较老了,是3.0.5版本的,由于正好手头有这个版本的源码,而且平时基本上也是用的这个版本Spring,因此后文的分析也都是针对这个版本。   下面贡献一下 Jar包以及源码 ,由于百度云上传的压缩包总是解压失败,就放在csdn上面了。 如何使用jar包以及源码的source包   首先,在工程右键,属性中,添加必要的jar包。   选中必要的jar包,上面给出的源码jar包中,导入spring3.0.5中的所有jar包。   其中lib内的是spring的jar包,用到哪个导入哪个,不知道的话,全部导入就行了。   外面的几个jar包,用于日志以及mysql的驱动。commons-logging jar包是必须的,其他的随意吧。   不确定的话,lib外面的这几个jar包以及lib里面的都导入就行了。   导入jar包后,点开jar包,选中source attachment进行编辑

Go Web 编程之 模板(一)

倾然丶 夕夏残阳落幕 提交于 2020-01-13 15:23:54
概述 模板引擎 是 Web 编程中必不可少的一个组件。 模板 能分离逻辑和数据,使得逻辑简洁清晰,并且模板可复用。引用第二篇文章 《程序结构》 一文中的图示,我们可以看到模板引擎在 Web 程序结构中的位置: 模板引擎按照功能可以划分为两种类型: 无逻辑模板引擎 :此类模板引擎只进行字符串的替换,无其它逻辑; 嵌入逻辑模板引擎 :此类模板引擎可以在模板中嵌入逻辑,实现流程控制/循环等。 这两类模板引擎都比较极端。无逻辑模板引擎需要在处理器中额外添加很多逻辑用于生成替换的文本。而嵌入逻辑模板引擎则在模板中混入了大量逻辑,导致维护性较差。实用的模板引擎一般介于这两者之间。 在Go 语言中, text/template 和 html/template 两个库实现模板功能。 模板内容可以是 UTF-8 编码的任何内容。其中用 {{ 和 }} 包围的部分称为 动作 , {{}} 外的其它文本在输出保持不变。模板需要应用到数据,模板中的动作会根据数据生成响应的内容来替换。 模板解析之后可以多次执行,也可以并行执行,但是注意使用同一个 Writer 会导致输出交替出现。 模板的内容较多,我将分为两篇文章介绍。本文介绍 text/template ,包括 Go 模板的基本概念,用法和注意点。下篇文章介绍 html/template 。 初体验 使用模板引擎一般有 3 个步骤: 定义模板

cm-14.1 Android系统启动过程分析(一)-init进程的启动、rc脚本解析、zygote启动、属性服务

时间秒杀一切 提交于 2020-01-12 01:46:14
声明 前阶段在项目中涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的。 本文参考了一些书籍的若干章节,比如《Android进阶解密-第2章-Android系统启动》、《深入理解Android虚拟机-第8/9/10章-init进程详解/Dalvik VM的进程系统/Dalvik VM运作流程详解》、《深入理解Android系统-第6/7/8章-init启动进程详解/Zygote进程详解/System进程详解》等 本文使用的代码是LineageOS的cm-14.1,对应Android 7.1.2,可以参考我的另一篇博客: 如何下载Nexus5的LineageOS14.1(cm-14.1)系统源码并编译、刷机 很多代码注释待详细写 1 init进程     init进程在Linux系统中是内核启动后启动的1号进程,init进程在Android系统中依然是内核初始化完成后首先启动的1号进程。init进程主要作用是: 创建、挂载启动所需的文件目录,包括:tmpfs、devpts、proc、sys、selinuxfs; 解析、处理init.rc等脚本文件中的命令; 创建Zygote和属性服务; 使用while(true)循环创建子进程;     其源码位置在: vim ~/LineageOS/system/core/init/init.cpp

[翻译]JavaScript秘密花园 - Type Casting,undefined,eval,setTimeout,Auto Semicolon Insertion - 全部完成PDF打包下载

我只是一个虾纸丫 提交于 2020-01-11 06:30:06
JavaScript Garden - 原文 JavaScript Garden - 中文翻译 PDF打包下载 类型转换 JavaScript 是 弱类型 语言,所以会在 任何 可能的情况下应用 强制类型转换 。 // 下面的比较结果是:truenew Number(10) == 10; // Number.toString() 返回的字符串被再次转换为数字10 == '10'; // 字符串被转换为数字10 == '+10 '; // 同上10 == '010'; // 同上 isNaN(null) == false; // null 被转换为数字 0 // 0 当然不是一个 NaN(译者注:否定之否定)// 下面的比较结果是:false10 == 010;10 == '-10'; ES5 提示: 以 0 开头的数字字面值会被作为八进制数字解析。而在 ECMAScript 5 严格模式下,这个特性被 移除 了。 为了避免上面复杂的强制类型转换, 强烈 推荐使用 严格的等于操作符 。虽然这可以避免大部分的问题,但 JavaScript 的弱类型系统仍然会导致一些其它问题。 内置类型的构造函数(Constructors of built-in types) 内置类型(比如 Number 和 String )的构造函数在被调用时,使用或者不使用 new 的结果完全不同。 new

jQuery插件开发全解析

旧城冷巷雨未停 提交于 2020-01-11 02:23:32
这个插件包含三个部分:HTML结构、CSS代码和JS代码。 HTML结构是固定的,结构如下: 1 <!--全屏滚动--> 2 <div class="fullpage-container"> 3 <div class="fullpage-pagebox"> 4 <div id="fullpage-page1" class="fullpage-page-vertical"><h1>1</h1></div> 5 <div id="fullpage-page2" class="fullpage-page-vertical"><h1>2</h1></div> 6 <div id="fullpage-page3" class="fullpage-page-vertical"><h1>3</h1></div> 7 <div id="fullpage-page4" class="fullpage-page-vertical"><h1>4</h1></div> 8 <div id="fullpage-page5" class="fullpage-page-vertical"><h1>5</h1></div> 9 <div id="fullpage-page6" class="fullpage-page-vertical"><h1>6</h1></div> 10 </div> 11 </div>

js预解析面试题

 ̄綄美尐妖づ 提交于 2020-01-09 22:49:12
js预解析一直是面试的重点,下面是我自己整理的一些预解析的面试题,基本上是由简到难的顺序排列的,每一道题的答案都自己验证过了,并附上了详细的解释,希望能对你有帮助 < ! DOCTYPE html > < html > < head > < meta charset = "UTF-8" > < title > < / title > < / head > < body > < script type = "text/javascript" > //01 alert ( a ) ; a = 0 ; //报错,a is not defined:不带var的变量没有提升 //02 alert ( a ) ; //undefined:带var变量预解析时存在提升 var a = 0 ; alert ( a ) ; //0 //03 alert ( a ) ; //函数原样输出:函数和带var的变量重名,带var的变量被忽略 var a = '我是变量' ; function a ( ) { alert ( '我是函数' ) } alert ( a ) ; //我是变量:重新赋值a = '我是变量' //04 alert ( a ) ; //1. 函数原样输出 a ++ ; alert ( a ) ; //2. NaN var a = '我是变量' ; function a ( ) {

第三篇:Django的路由系统

守給你的承諾、 提交于 2020-01-08 20:00:26
目录 表关系的创建 Django的表关系建立 Django 请求生命周期流程图 Django 的路由系统 URL conf配置 基本格式 正则表达式 无名分组 有名分组 反向解析 无名分组反向解析 有名分组反向解析 伪代码诠释 路由分发 名称空间(了解) 虚拟环境 Django 版本区别 伪静态 表关系的创建 表与表之间的关系:一对一,一对多,多对多 如何判断表与表之间的关系? 换位思考的角度去考虑 以图书管理系统为例: 图书表 图书和出版社是一对多的外键关系 一对多的外键关系,外键字段建立在使用频率多的一方 出版社表 作者表 图书与作者是多对多的外键关系 多对多的外键关系,外键字段无论建在哪张表里面都可以 但是推荐建立在查询频率比较高的那张表中 作者详情表 作者与作者详情表是一对一的外键关系 一对一的外键关系 外键字段建在哪张表里面都可以 但是推荐建立在使用频率较高的那张表中 外键建立使用频率较高的一方,方便我们后面基于orm查询 Django的表关系建立 会将字段名和另外一张表的主键字段自动关联起来,建立起外键关系 一对多: 字段名 = models.Foreignkey(to='表名') 多对多: 字段名 = models.ManyToManyField(to='表名') 一对一: 字段名 = models.OneToOneField(to='表名') ForeignKey

python的库有多少个?python有多少个模块?

守給你的承諾、 提交于 2020-01-08 13:42:17
这里列举了大概500个左右的库: ! Chardet字符编码探测器,可以自动检测文本、网页、xml的编码。 colorama主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable主要用于在终端或浏览器端构建格式化的输出。 difflib,[Python]标准库,计算文本差异 Levenshtein,快速计算字符串相似度。 fuzzywuzzy,字符串模糊匹配。 esmre,正则表达式的加速器。 shortuuid,一组简洁URL/UUID函数库。 ftfy,Unicode文本工具7 unidecode,ascii和Unicode文本转换函数。 xpinyin,将汉字转换为拼音的函数库 pangu.py,调整对中日韩文字当中的字母、数字间距。 pyfiglet,Python写的figlet程序,使用字符组成ASCII艺术图片 uniout,提取字符串中可读写的字符 awesome slugify,一个Python slugify库,用于处理Unicode。 python-slugify,转换Unicode为ASCII内码的slugify函数库。 unicode-slugify,生成unicode内码,Django的依赖包。 ply,Python版的lex和yacc的解析工具 phonenumbers,解析电话号码,格式,存储和验证的国际电话号码。 python

nginx的请求接收流程(一)

空扰寡人 提交于 2020-01-08 03:52:03
今年我们组计划写一本nginx模块开发以及原理解析方面的书,整本书是以open book的形式在网上会定时的更新,网址为http://tengine.taobao.org/book/index.html。本书分析的nginx源码版本为1.2.0,环境为linux,事件处理模型为epoll,大部分分析流程都基于以上假设。我会负责其中一些章节的编写,所以打算在这里写一系列我负责章节内容相关的文章(主要包括nginx各phase模块的开发,nginx请求的处理流程等)。本篇文章主要会介绍nginx中请求的接收流程,包括请求头的解析和请求体的读取流程。 首先介绍一下rfc2616中定义的http请求基本格式: [cpp] view plain copy <span style= "font-size:18px;">Request = Request-Line *(( general-header | request-header | entity-header ) CRLF) CRLF [ message-body ] </span> 第一行是请求行(request line),用来说明请求方法,要访问的资源以及所使用的HTTP版本: [cpp] view plain copy <span style= "font-size:18px;">Request-Line = Method SP