npm模块管理仓库切到阿里源
npm config set registry https://registry.npm.taobao.org/
确认是否切换成功
npm config get registry
程序的启动 supervisor
修改服务器端代码后需要手动重启应用,使用supervisor 可以监听js文件,当文件有改动的时候可以
自动重启应用。
全局安装 supervisor
npm install -g supervisor
使用supervisor 启动应用
cd bin && supervisor --harmony www
javascript 条件表达式三元操作符
var age = 34;var all = (age > 18) ? "yes":"NO";function make(data){ if(data > 18){ return true }else{ return false }}var all = make(age) ? "yes":"NO";
关于一个 多重分支的判断
function make(data){ switch(data){ case 'zs': console.log('welcome zhangsan'); break; case 'li': console.log('welcome LSSIII'); break; case 'w': console.log('welcome WWWWW'); break; default: console.log(" ERRRRR") } }make('li')
对象的编辑
var obj = { name: "Carrot", "for": "Max", details: { color: "orange", size: 12 }}console.log(obj['details']['color'])console.log(obj.details.color)
对象构造
function per(name,age){ this.name = name, this.age = age, this.action = function(){ console.log("hahaha"); } }var obj = new per('jk',18)obj.action();console.log(obj.name)
函数中的参数
function showa(){ console.log(arguments[2])}showa(3,7,2,4) 打印出7 arguments 代表的是所有的参数
关于 let...of...
var a = [4,1,5,6]for(let val of a){ console.log(val)}
可以遍历的有 数组&字符串& map& set 等等。
关于数组的遍历 forEach
forEach函数回调中有3个参数
第一个是遍历的数组内容,第二个是数组索引,第三个是数组本身。
var a = [1,4,7]a.forEach(function(value,index,arr){ console.log(value + 'HH' + index + 'AA' + arr)})
map 对数组的遍历同 forEach 相同。
var a = [1,4,7]a.map(function(value,index,arr){ console.log(value + 'HH' + index + 'AA' + arr)})
关于函数定义中的 fucntion name(){} 和 var name = function(){} 的区别
var a = function(){ return 4;}console.log(a()) // 输出 4 , 申明前置。 var a = function(){ return 5;}function a(){ return 4;}console.log(a()) // 输出5 javascript 允许函数和变量在定义之前进行引用,第二个定义覆盖了第一个引用。 function a(){ return 5;}
关于回调函数 callback
function make(cun,callback){
if(cun > 3){ callback('yes'); }else{ callback('no'); }}make(1,function(s){
console.log(s) 输出 no})make(5,function(s){ console.log(s) 输出 yes})
关于数组的一些处理
1 确定数组中是否包含特定的值。 indexOf
如果该值存在,则返回该值在数组中的位置,如果不存在,则返回 -1
2 关于数组的批量处理
例如要将 [1,2,3] 处理为 [2,4,6]
var a = [1,2,3];function make(data){ return data*2;}var v = a.map(make);console.log(v);
当然还有一种方法 async 的 transform 方法
var async = require('async');var data = [1,2,3,4];async.transform(data, function(acc, item, index, callback) { process.nextTick(function() { acc.push(item * 2) callback(null) });}, function(err, result) { console.log(result);输出 //[2,4,6,8]});
async 对json的处理
var async = require('async');var data = { a: 1, b: 2, c: 3}async.transform(data, function (obj, val, key, callback) { setImmediate(function () { obj[key] = val * 2; callback(); })}, function (err, result) { console.log(result); //输出 {a:2,b:4,c:6}})
console.dir()打印出对象的所有属性和方法
生成6位数字的 验证码
console.log(('000000' + Math.floor(Math.random() * 999999)).slice(-6));
一个评价组件
"★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate)