1.value是数组,选择该数组中包含某个值xxx,并且返回完整的value,db.document.find({value: "xxx"})
1.正则
整数+小数:'123456789000.7890'.replace(/(?=\B(?:\d{3})+\b)(\d{3}(.\d+$)?)/g,',$1'); // "123,456,789,000.7890"
整数(1):'123456789000'.replace(/\B(?=(\d{3})+\b)/g, ','); // "123,456,789,000"
整数(2):'12345678900'.replace(/(\d)(?=(\d{3})+$)/g, '$1,'); // "12,345,678,900"
2.原生
(123456789000).toLocaleString('en-US'); // "123,456,789,000"
1.run command: mongod
2.start mongo shell: mongo
3.show dbs
4.show collections
5.use [dbname]
6.db.[collection name].insertOne({})
7.db.[collection name].find({}) // 查询条件(Object),条件为空({})查询collection下的所有数据
8.db.[collection name].insertMany([{}]) //插入对象数组
9.db.[collection name].find({'key': {$in: ['value1', 'value2'...]}}) // 根据key的value范围查找
- auto close tag
- auto rename tag
- beautify
- colorize
- html css support
- path autocomplete
- path intellisense
- scss intellisense preview
- javascript snippet pack
- vscode-icons
- Array.map()可以用来对数组进行深拷贝
- 函数名本质上是函数指针
- 拥有arguments的函数:arguments.callee
- 调用拥有arguments的函数的对象:arguments.callee.caller
- Math.random()常用公式:Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
// 选择1~10之间的数值
Math.floor(Math.random() * 10 + 1);
// 选择2~10之间的数值
jQuery.fn = jQuery.protoytpe;
jQuery.fn.init.prototype = jQuery.fn;
jQuery在构造函数中声明了一个fn属性,将其只想了jQuery的原型——jQuery.prototype,并在原型中添加了init方法,然后又将init的原型指向jQuery.prototype。而在jQuery的构造函数中,返回init的实例对象。最后对外暴露入口时,将$与jQuery对等起来。 因此,当我们使用$(selector)创建一个jQuery对象时,实际上是创建了一个init实例,这里真正的构造函数是原型中的init方法。如果不加节制的使用$创建对象会产生很多个init实例,对内存的消耗是非常大的,所以用变量保存将要重复使用的jQuery对象是一个很好的做法。
- $.extend 扩展方法被添加到jQuery构造函数中。
- 构造函数中:属性和方法为当前实例单独拥有,只能被当前实例访问,并且每声明一个实例,其中的方法都会被重新创建一次。
- 原型中:属性和方法为所有实例共同拥有,可以被所有实例访问,新声明实例不会重复创建方法
- 模块作用域:属性和实例不能被任何实例访问,但是能被内部方法访问,新声明的实例不会重复创建相同的方法
构造函数中的方法总会在总会在声明一个新的实例时被重复创建,因此我们声明的方法都应该尽量避免出现在构造函数中。
如果方法中需要用到构造函数的变量,或者想要公开,那就需要放在原型中。
如果方法需要私有不被外界访问,那么就放置在模块作用域中。
对于属性需要放置在哪里,需要根据上述三个位置的特性作出合理的判断。