大家好,今天刚学会用微信的图文模板,啊哈哈,以后文章就要这样排版喽!哈哈,解锁新功能,有点小开心,我还真是一个容易满足的人呢!各位宝宝,也要做一个容易满足的人哦!
万古人间四月天,最近天气很好,你看照片里的云~
node.js安装
自定义模块
要创建自定义模块,在原来的node项目中删除node_moduls目录,并把package.json文件修改为:
{
"name": "tll-test-modules",
"version": "0.0.0",
"dependencies": {
"colors": "0.5.0"
}
}
package.json文件是从node和npm两个层面描述项目的,其中name和version,是必要的字段。通常还会定义一些依赖,将依赖模块的块名和版本号作为对象的属性名和值在这个文件中定义。此文件内容必须遵循JSON格式,必须确保所有的字符串都要用双引号。
保存上述文件,安装依赖,然后运行index.js文件
npm install
node test
本例中自定义模块是内部使用的,如果想发布出去,npm提供方法:
npm publish
若你不想发布,可在package.json值设置:
"private": "true"
当别人require('tll-test-modules'),为了能让node知道该载入哪个文件,我们需要用的package.json的main属性:
{
"name": "tll-test-modules",
"version": "0.0.0",
"main": "./test.js",
"dependencies": {
"colors": "0.5.0"
}
}
要查看package.json的所有属性,可用命令:
npm help json
哈哈,太多属性了,滑动着看吧,宝宝们。
浏览NPM仓库
npm有一个丰富的仓库,包含成千个模块。npm两个命令可以搜索和查看模块:search和view。例如:
npm search realtime
该命令会在已发布模块的name、tags以及discription中搜索关键字,并返回结果。
然后运行npm view + "模块名"就可以查看了:
tip: 使用npm help可查看npm 命令的帮助文档哦!例如npm help publish:
至此,我们已经搭建了node.js+npm环境喽。
Javascript概述及V8中的Javascript
—
Javascript概述就不做笔记了,因为这本书中讲的都是基本的,各位宝宝如果不知道这些基础应该也不会来看我的这个笔记,so,next。
V8中的Javascript
V8是是全新的Javascript引擎,以极快的运行环境和时刻保持最新并支持最新ECMAScript特性的优势,快速的蹿红。
OBJECT#KEYS
获取对象所有的自有键
var a = {a:'b',c:'d'}
Object.keys(a) //['a','c']
ARRAY#ISARRAY
获Array.isArray对数组返回true,对其他值返回false
Array.isArray(new Array) //true
Array.isArray([]) //true
Array.isArray(bull) //false
Array.isArray(arguments) //false
数组方法
forEach()
[1,2,3].forEach(function(v){
console.log(v)
}) // 1,2,3
filter()
[1,2,3].filter(function(v){
return v<3
}) //[1,2]
map()
[1,10,20].map(function(v){
return v*3
}) // [3,30,60]
字符串方法
要移除字符串首末的空格
' hello '.trim(); //'hello'
JSON
V8提供了JSON.stringfy和JSON.parse方法来对JSON数据进行编码和解码。
var obj = JSON.parse('{"a":"b"}')
obj.a = 'b'; //true
FUNCTION#BIND
V8bind改变this的引用
function a(){
this.hello = 'world'; //true
}
var b = a.bind({hello: 'world'});
b();
FUNCTION#NAME
V8还支持非标准的函数属性名:
var a = function woot(){};
a.name = 'woot'; // true
该属性用于V8内部的堆栈追踪。当有错误抛出时,V8会显示一个堆栈追踪的信息,会告诉你是哪个函数调用导致了错误的发生:
各位宝宝们,不要傻看着,动手啊,敲代码啊!
上述例子,是个匿名函数,所以V8无法为函数引用指派名字。
当给函数命名时,有助于调试,推荐始终对函数进行命名。
_PROTO_(继承)
当给函数命名时,有助于调试,推荐始终对函数进行命名。
> function Animal(){}
// undefined
> function Ferret(){}
// undefined
> Ferret.prototype._proto_ = Animal.prototype
// Animal {}
存取器
设置属性就用_defineSetter_,访问属性 _defineGetter_。
Date.prototype._defineSetter_('ago',function(){
var diff = ( (new Date()).getTime() - this.getTime() )/1000
,day_diff = Math.floor(diff / 86400);
return day_diff = 0 && (
diff < 60 && "just now" ||
diff < 120 && "1 minutes ag0" ||
......
)
})
new Date('04/05/2019').ago //........
V8做了一件很酷的事情,它始终坚定不移的实现最新版本的ECMA标准。Node.js的核心团队也是如此,只要你安装的是最新版本的Node,你总能使用最新版本的Node,你总能使用最新版本的V8。
阻塞与非阻塞IO
—
咿呀,我妈催我睡觉了。宝宝们早点睡吧,听妈妈的话。明天继续~
愿我们有能力不向生活缴械投降---Lin