20181104_ARTS_week19

栏目: Node.js · 发布时间: 6年前

内容简介:第 19 周,算法题 Search Insert Position,看了一篇对比 Yarn 和 npm 的文章,介绍了 JavaScript 中 new 运算符的一些坑,分享了对于业务和技术重构的一些看法。比较简单的一题,数组都排好序了,直接 loop 一下就好。Yarn vs npm - which Node package manager to use in 2018?

第 19 周,算法题 Search Insert Position,看了一篇对比 Yarn 和 npm 的文章,介绍了 JavaScript 中 new 运算符的一些坑,分享了对于业务和技术重构的一些看法。

Algorithm

/**
 * Search Insert Position
 * https://leetcode.com/problems/search-insert-position/
 *
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function(nums, target) {
    for (var i=0; i<nums.length; i+=1) {
        if (target <=nums[i]) {
            return i
        }
    }
    return  i
};

console.log(searchInsert([1,3,5,6], 5)) // 2

比较简单的一题,数组都排好序了,直接 loop 一下就好。

Review

Yarn vs npm - which Node package manager to use in 2018?

https://blog.risingstack.com/yarn-vs-npm-node-js-package-managers/

文中作者分别对比了 Yarn 与 npm 的优缺点,最后推荐了 npm。

在我看来,相比 npm,Yarn 最大的优点是会把装过的包缓存下来,这样下次再用到的时候就不用等待漫长的下载时间了。

不过由于 npm 是直接打包在 node 里,而且已经是 node 中使用最广泛的包管理工具,所以我还是建议优先使用 npm。

Tip

分享个 JavaScript 中关于 new 运算符的特性。 一般情况下 new 运算符会返回一个对象:

function Thing() {
  this.one = 1;
  this.two = 2;
}

var myThing = new Thing();

myThing.one // 1
myThing.two // 2

但是如果我们尝试在 Thing() 中 return 一个值:

function Thing() {
  this.one = 1;
  this.two = 2;

  return 5;
}

var myThing = new Thing();

myThing.one // 1
myThing.two // 2

会发现 return 的值不见了,并没有什么用。

如果我们换一种方式,尝试 return 一个对象。

function Thing() {
  this.one = 1;
  this.two = 2;

  return {
    three: 3,
    four: 4
  };
}

var myThing = new Thing();

console.log(myThing); // Object {three: 3, four: 4}

结果返回的对象取代了原本我们的对象。 这可以说是 new 运算符的一个特性,如果返回的是原始类型(数字,string 等)就会被忽略,而如果返回的是非原始类型(Object,Array,function 等)就会替代原来的对象。

这个『特性』需要注意,一不小心就踩到坑了。

Share

这周思考一个问题,对于接手一个旧项目是否要彻底重构?

新接手几个项目,组里有人想彻底重构一把。对于这个问题我是这样看的,最好是分步骤来,遇到页面有较大改动的,可以进行重构。

因为业务不等人,不可能有机会停下来让你做 2-3 个月的重构,而且老项目单元测试,文档,自动化测试都相对缺失,重构的质量进度都不好把控。

其实,很多做技术的人只关注技术,总想用最新最酷的技术。能和业务情况结合当然最好,如果不能,技术还是要做些妥协的,毕竟业务做好了,公司活下来是一切的基础。

碎碎念

记录一些所思所想,写写科技与人文,写写生活状态,写写读书心得,主要是扯淡和感悟。 欢迎关注,交流。

微信公众号:程序员的诗和远方

公众号ID : MonkeyCoder-Life

20181104_ARTS_week19


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

村落效应

村落效应

[加] 苏珊·平克(Susan Pinker) / 青涂 / 浙江人民出版社 / 2017-3-1 / CNY 69.90

 面对面的接触是作为社会性动物的人类最古老、深刻的需求。在互联网时代,社交媒体已经成为人际沟通的主体,人际关系的维系越来越被社交媒体上的点赞、转发、评论代替,在冰冷的互动中,我们失去了真实与温度。面对面的人际关系与接触能让人感受到如村落生活般的归属感,它是一个人免疫力、复原力和影响力的真正来源。虽然互联网拥有毋庸置疑的优势,但是如果我们渴望快乐、健康、长寿……没错,还有智慧,我们就需要想方设法腾......一起来看看 《村落效应》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具