众所周知,计算机计算的数字是有上限的,js里可以精确表示的最大值是 Number.MAX_SAFE_INTEGER,那超过这个值的两个整数求和,要怎么计算呢?

日常生活中我们常常会遇到想要拍一张合照,但是附近没有人可以帮忙或者不愿意麻烦别人的情况,这时我们就可以通过图片合成来达到“合影”的效果。

树形结构是算法中很常见的一种结构,正好工作中遇到了,就研究一下遍历深度查找节点等算法。

js中的继承,是指让一个对象拥有另一个对象的属性和方法。而实现继承主要有以下六种方式

  • 原型链继承
  • 借用构造函数继承
  • 组合继承
  • 原型式继承
  • 寄生式继承
  • 寄生组合式继承

写给定一个包含n个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。
注意:答案中不可以包含重复的三元组。
例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],
满足要求的三元组集合为:
[
[-1, 0, 1],
[-1, -1, 2]
]

关于闭包的定义,已经在另一篇文章 闭包的特征和应用场景 中介绍了,这里想来分析一个例子。

写一个go方法,要求:
执行go('l')返回gol,
执行go()('l')返回gool,
执行go()()('l')返回goool

一、问题分析

按照题干的描述,go方法可以选择是否传参数,传参数时返回字符串,不传参数返回另一个函数,而且这个函数还可以再次调用生成另一个函数,但每调用一次,最后返回的字符串中间会多一个o。那就说明有一个变量在函数执行结束后仍然被保留,很容易联想到闭包。

js继承中的组合继承和寄生组合继承有什么区别呢?js中的继承分为两个部分,对实例的继承和对原型的继承。可以用原型来继承公用的属性和方法,当原型上的属性和方法改变时,继承关系链上的所有对象都将受到影响;用实例来继承特有的属性和方法,当实例上的属性和方法发生改变时,继承关系链上的所有对象互不影响。

排序算法是js最基础的算法,只要弄清楚各种排序算法的排序逻辑,要实现起来就不难了。
1.冒泡排序
2.快速排序
3.选择排序
4.插入排序