动态作用域与词法作用域

1
2
3
4
5
6
7
8
9
function foo() {
console.log( a );
}
function bar() {
var a = 3;
foo();
}
var a = 2; bar();
//什么状况,为什么是2,而不是undifined?啊,我知道了,上面那条是由于a=2留在原地等待执行,console执行在前,在此例中执行bar执行在后,不是说关注声明么,是的,关注声明只是让你找对容器,而容器里装什么与声明无关,所以并不矛盾。
阅读全文 »

不同语言之间的转换

  • 高级程序语言经过编译,变成汇编代码,汇编代码经过汇编器和连接器变成可执行的机器代码。汇编代码是人类可读的代码。机器代码是01序列。

  • 在程序执行前,数据和指令事先存放在存储器中,每条指令和每个数据都有地址。程序启动后,计算机取指令执行。执行过程中,指令和数据从存储器取到CPU,存放到CPU寄存器中,CPU内的寄存器与控制器与ALU进行数据传送与运算,将运算结果写入内存中(存储器)。

  • 寄存器
    IA-32体系中,有8个通用寄存器GPR,2个专用寄存器EIP和EFLAGs和六个段寄存器,间接给出段基址。

阅读全文 »

数据结构的栈和堆

  • 栈:只能在表的一端进行插入和删除的线性表。具有先进后出的性质,可以理解为装数据的桶。
  • 堆:经过排序的树形数据结构。

内存分配的栈和堆(以c++编译程序为例)

存放区域

区域 作用
栈区(stack) 由编译器自动分配和释放,存放函数的参数值,局部变量的值等。操作方式类似与数据结构中的栈
堆区(heap) 一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。与数据结构中的堆是两码事,分配方式类似于链表。
全局区(静态区)(static) 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的还有一块区域。程序结束后由系统释放
文字常量区 常量字符串,程序结束后由系统释放
程序代码区 存放函数体的二进制代码
阅读全文 »

开发环境

  • mode: 'development',
  • devtool: 'inline-source-map',……plugins: [

使用 source map ,准确地知道错误来自于哪个源文件,

  • watch mode

npm run watch 浏览器可自动更新

  • webpack-dev-server/webpack-dev-middleware
阅读全文 »

[TOC]

看懂webpack.config.js

  1. entry
1
2
3
module.exports={
entry:'./path/to/my/entry/file.js'
};

默认值是./src/index.js;入口起点

  1. output
1
2
3
4
5
6
7
8
const path = require('path');
module.exports = {
entry: './path/to/my/entry/file.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
}
};
阅读全文 »
0%