> For the complete documentation index, see [llms.txt](https://note.niefee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://note.niefee.com/summary/3/2016-nian-3-yue-5-ri.md).

# 2016年3月5日

## javascript

* parseInt(string, radix) 函数

**radix**： 可选。表示要解析的数字的基数。该值介于 2 \~ 36 之间。

函数可解析一个字符串，并返回一个十进制整数。

* 进制转换

```javascript
//十进制转其他  
var x=110;  
alert(x);  
alert(x.toString(8));  
alert(x.toString(32));  
alert(x.toString(16));  
//其他转十进制  
var x='110';  
alert(parseInt(x,2));  
alert(parseInt(x,8));  
alert(parseInt(x,16));  
//其他转其他  
//先用parseInt转成十进制再用toString转到目标进制  
alert(String.fromCharCode(parseInt(141,8)))//"a"
alert(parseInt('ff',16).toString(2));//"11111111"
```

## nodejs

在ecmascript部分node和js其实是一样的，比如数据类型的定义，语法结构，内置对象

在js中的顶层对象: window

在node中的顶层对象: global

> 注意：在node中也没有什么window

一个文件就是一个模块

每个模块都有自己的作用域

我们使用var来申明的一个变量，他并不是全局的，而是属于当前模块下

**\_\_filename**:当前文件被解析过后的绝对路径;

**require('模块')**:模块加载;

模块加载机制：

* 路径
  * 绝对路径
  * 相对路径
* 查找方式
  1. 首先按照加载的模块的文件名称进行查找
  2. 如果没有找到，则会在模块文件名称后加上.js的后缀，进行查找
  3. 如果还没有找到，则会在文件名称后加上.json的后缀，进行查找
  4. 如果还没有，则会在文件名称后加上.node的后缀，进行查找

> 文件名称 -> .js -> .json -> .node
