了解cjs、esm以及require.context
了解cjs、esm以及require.context()之前写了一篇文章——CommonJS 与 ES6 Module的区别,主要写了一下cjs和esm特性的一些区别。
这篇文章的内容是对上一篇的一些补充,和在深入了解cjs和esm收获的一些知识。
cjs模块的导入和导出cjs模块导出在cjs中,通过module.exports可以导出模块中的内容,如:
1234module.exports = { name: 'yoha', add: (a, b) => a + b;}
cjs模块内部会有一个module对象用于存放当前模块的信息。在每个模块最开始定义了一下对象:
123let module = { exports: {}}
验证一下:
12//addSum.jsconsole.log(module);
12//index.jsconsole.log(require('./addSum.js'), 'addSum');
注意:导出模块语句不 ...
你可能还不知道console对象
console对象详解直接进入主题,先看一下console这个对象包含哪些属性。
其中console对象包含的函数属性:assert、clear、context、count、countReset、debug、dir、dirxml、error、group、groupCollapsed、groupEnd、info、log、profile、profileEnd、table、time、timeEnd、timeLog、timeStamp、trace、warn。
还有一个属性:memory
显示信息的命令最简单常用的就是console.log()。另外,根据显示信息的性质不同,console对象还有4种显示信息的方法,分别是一般信息console.info()、除错信息console.error()、警告信息console.warn()、错误提示console.error()。
占位符console对象的上面5种方法,都可以使用printf风格的占位符。不过,占位符的种类比较少,只支持字符(%s)、整数(%d或%i)、浮点数(%f)和对象(%o)四种。
比如:
12console.log(&q ...
Units in css
Units in css(em,rem,pt,px,vw,vh,vmin,vmax,ex,ch…)本文将从相对单位、绝对单位以及viewpoint units三个类型来介绍在css中的单位。
相对单位与绝对单位(如:px)不同,我们也可以用相对单位来定义尺寸。在大多数浏览器中,默认的字体大小是16px,可以把这个尺寸作为基值来计算。比如16px=1em,1rem或者100%。
单位
描述
em
基准点为父节点字体的大小,如果自身定义了font-size按自身来计算,整个页面内1em不是一个固定的值。
rem
可理解为”root em”, 相对根节点html的字体大小来计算
%
百分比
ch
相对于“0”的宽度
ex
ex单位定义为“当前字体x的高度或1em的二分之一”。 给定字体x的高度是该字体的小写x的高度。通常,大约是字体的中间标记。
x-height; the height of the lower case x
The units ex and ch, similar to em and rem, rely on the curr ...
高性能JavaScript——第一章
第一章 加载和执行
高性能JavaScript读书笔记
\标签每次出现都会霸道地让页面等待脚本的解析和执行。无论当前的JavaScript代码是内联的还是包含在外链文件中,页面的下载和渲染都必须停下来等待脚本的执行完成。因为脚本执行的过程可能会修改页面内容。
例如:
123456789101112<html> <head> <title>Script Example</title> </head> <body> <p> <script type="text/javascript"> document.write('The date is ' + (new Date()).toDateString()); </script> </p> </body></html> ...
计算机组成原理——第四章
第四章 存储器4.1 概述一、存储器分类
按存储介质分类
半导体存储器 (TTL、MOS)
磁表面存储器 (磁头、载磁体)
磁芯存储器 (硬磁材料、环状元件)
光盘存储器 (激光、磁光材料)
按照存取方式分类
存取时间与物理地址无关(随机访问)
随机存储器(RAM):在程序执行过程中可读可写
只读存储器(ROM):在程序执行过程中只读
存取时间与物理地址有关(串行访问)
顺序存取存储器:磁带
直接存取存储器:磁盘
按在计算机中的作用分类
按照在计算机中的作用进行分类,存储器可以分为主存储器和辅存储器。其中主存储器可以分为随机存储器(RAM)和只读存储器(ROM)。一般用户到数据和程序是存储在RAM中,一些系统参数则保存在ROM中。RAM还可以进一步的分类:分为静态RAM和动态RAM。ROM还可以进一步分为:MROM(掩模只读存储器)、PROM(可编程的只读存储器)、EPROM(电可编程只读存储器)、EEPROM(带电可擦可编程只读存储器)。
辅助存储器和主存储器之间还可以放上一层flash memory,常用的U盘就是flash memory来做的,是半导体存 ...
计算机组成原理——第三章
第三章 系统总线3.1 总线的基本概念
为什么要使用总线
面向总线的结构主要有以下优点:
简化了系统结构,便于系统设计制造;
大大减少了连线数目,便于布线,减小体积,提高系统的可靠性;
便于接口设计,所有与总线连接的设备均采用类似的接口;
便于系统的扩充、更新与灵活配置,易于实现系统的模块化;
便于设备的软件设计,所有接口的软件就是对不同的口地址进行操作;
便于故障诊断和维修,同时也降低了成本。
什么是总线
总线是连接各个部件的信息传输线,是各个部件共享的传输介质。
总线上信息的传送
串行:串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。
并行:并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。计算机或plc各种内部总线就是以并行方式传送数据的。另外,在PLC(可编程逻辑控制单元)底板上,各种模块之间通过底板总线交换数据也以并行方式进行。
Q: 串行通信和并行 ...
彻底搞懂HTTPS的加密机制
彻底搞懂HTTPS的加密机制
本文转载自知乎彻底搞懂HTTPS的加密机制。作者说的很清晰,故转载到博客。对作者表示感谢!
HTTPS(SSL/TLS)的加密机制虽然是个前后端开发都应了解的基本问题,但是网上的很多HTTPS的相关文章也总会忽略一些内容,我学习它的时候也费了挺大功夫。
对称加密、非对称加密、数字签名、数字证书等等,在学习过程中,除了了解“它是什么”,你是否想过“为什么是它”?我认为了解了后者才真正理解了HTTPS的加密机制。
本文以问题的形式逐渐展开,一步步解开HTTPS的面纱,希望能够帮助你彻底搞懂HTTPS。特别是对于了解过HTTPS却在有些地方卡壳的人,希望本文能帮助你理清思路。
为什么需要加密?因为http的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了,并且劫持者还可以篡改传输的信息且不被双方发觉,这就是中间人攻击。所以我们才需要对信息进行加密。最直接的加密方式就是对称加密。
什么是对称加密?就是一个密钥,它可以对一段内容加密,加密后只能用它才能解密看到原本 ...
题目:经典的FOO.getName问题
题目:经典的FOO.getName问题代码如下:
123456789101112131415161718function Foo() { getName = function () { console.log(1); } return this;}Foo.getName = function () { console.log(2);}Foo.prototype.getName = function () { console.log(3);}var getName = function () { console.log(4);}function getName() { console.log(5);}
问题是: 下面的代码输出什么?
1234567Foo.getName();getName();Foo().getName();getName();new Foo.getName();new Foo().getName();new new Foo().g ...
计算机组成原理——第二章
第二章 计算机的发展及应用2.1 计算机发展史
一、计算机的产生和发展
世界第一台电子计算机ENIAC(1946年)
值得记住的机器:IBM System / 360
二、微型计算机的出现和发展
微处理器芯片1971年 intel公司
存储器芯片 1970年
三、软件技术的兴起和发展
各种语言
机器语言 面向机器
汇编语言 面向机器
高级语言 面向问题
系统软件
软件发展的特点
2.2 计算机的应用
一、科学计算和数据处理
二、工业控制和实时控制
三、网络技术
电子商务
网络教育
敏捷制造
四、虚拟现实
五、办公自动化和管理信息系统
六、CAD(计算机辅助技术)/CAM(计算机辅助制造)/CIMS(计算机/现代集成制造系统)
七、多媒体技术
八、人工智能
2.3 计算机展望 芯片集成度的提高收一下三方面的限制:
芯片集成度受物理极限的制约
按几何级数递增的制作成本
芯片的功耗、散热、线延迟
计算机组成原理——第一章
第一章 计算机系统概论
计算机组成原理第一章随堂笔记
采用自顶向下的方式,层层细化。
课程内容组织分为四篇:
第一:概论;
第二:计算机系统的硬件结构
第三篇:CPU
第四篇:CU
1.1 计算机系统简介计算机系统由软件和硬件两部分组成。软件可以划分为系统软件和应用软件两种。
计算机系统结构是指 程序员所见到的计算机系统的属性,概念性的结构与功能特性。(指令系统、数据类型、寻址技术、I/O机理)。比如 有无乘法指令
计算机组成主要是 实现计算机体系结构所体现的属性。(具体指令的实现)。比如 如何实现乘法指令
1.2 计算机的基本组成 一、冯诺依曼计算机特点
有5大组成部分:运算器(ALU)、控制器(CU)、存储器、输入设备、输出设备。
指令和数据以同等的地位存于存储器,可以按地址寻访
指令和数据用二进制表示
指令由操作码和地址码组成(操作码指明指令具体要做什么操作,地址码指明要操作的数在内存中的地址。)
存储程序,程序存储在存储器中(核心特征)
以运算器为中心
冯诺依曼计算机硬件框图
存在的问题:以运算器为中心,运算器的性能成为这个系统的瓶颈;其次层次 ...