CS-Interview-Knowledge-Map icon indicating copy to clipboard operation
CS-Interview-Knowledge-Map copied to clipboard

Chinese Dicuss

Open KieSun opened this issue 6 years ago • 44 comments

For Chinese developers to discuss. 提供给中文开发者讨论问题

KieSun avatar Jun 19 '18 08:06 KieSun

Great

Wscats avatar Jul 15 '18 08:07 Wscats

good job

tuobaye0711 avatar Jul 15 '18 08:07 tuobaye0711

nice

jayconscious avatar Jul 15 '18 11:07 jayconscious

@KieSun 是否有计划添加一些关于 nodejs 和设计模式的知识点。

cobish avatar Jul 16 '18 01:07 cobish

@cobish 设计模式会写,node 暂时没有计划

KieSun avatar Jul 16 '18 02:07 KieSun

@KieSun 期待设计模式 ing

cobish avatar Jul 16 '18 03:07 cobish

点个赞,帮助很大。如果图片可以支持放大就更好了, 某些图片字体过小,导致看不清

fXy-during avatar Jul 16 '18 15:07 fXy-during

虽然 node 暂时没有计划 ,但还是很期待

hipi avatar Jul 17 '18 01:07 hipi

数据结构二叉树的排名那里_select函数中if函数的判断条件应该是size > k - 1,当size = k -1时返回node。 因为要找第三大的数,左边size为2,要找的数才是它本身。

Flying-Snail avatar Jul 18 '18 13:07 Flying-Snail

在 前端/js/typeof 下 有一段这样的代码

let a
// 我们也可以这样判断 undefined
a === undefined
// 但是 undefined 保留字,能够在低版本浏览器被赋值
let undefined = 1
// 这样判断就会出错
// 所以可以用下面的方式来判断,并且代码量更少
// 因为 void 后面随便跟上一个组成表达式
// 返回就是 undefined
a === void 0

最后的 a===void 0 应该改为 a = void 0

dekura avatar Jul 18 '18 13:07 dekura

@Flying-Snail 代码没问题

KieSun avatar Jul 18 '18 13:07 KieSun

@dekura 这里的目的就是为了判断a的值是否是undefined,=不就是a被赋值为undefined了么

Flying-Snail avatar Jul 18 '18 13:07 Flying-Snail

@KieSun 额,node中的size是包含node本身的大小。比如有5个数,左子树3个,右子数1个。现在k为3,size取的是左子树的大小也就是3.这个时候是我们需要的节点是在左边,但是因为size=k,代码中的情况是返回root节点本身的。

Flying-Snail avatar Jul 18 '18 14:07 Flying-Snail

@Flying-Snail 首先 select 是查找第几小的函数,第几小从 0 开始,所以当你有 5 个数分别为 7,1,3,4,8 时,依次排序为 1,3,4,7,8,从 0 开始排序,所以 select(3) 的答案为 7 ,也就是根节点

KieSun avatar Jul 18 '18 14:07 KieSun

@KieSun 这个查找是从0开始的啊。。。

Flying-Snail avatar Jul 18 '18 14:07 Flying-Snail

@Flying-Snail 恩,你可以阅读下算法(第四版),毕竟人家是权威。

KieSun avatar Jul 18 '18 14:07 KieSun

@KieSun 好的~

Flying-Snail avatar Jul 18 '18 14:07 Flying-Snail

// 但是 undefined 保留字,能够在低版本浏览器被赋值

应该说undefined不是保留字吧?

Techiu avatar Jul 19 '18 03:07 Techiu

@Techiu undefined不是保留字,它是内置对象。只不过后来被设置了只读属性。

Flying-Snail avatar Jul 19 '18 03:07 Flying-Snail

总结的很好,点个赞

wangliuyong avatar Jul 19 '18 06:07 wangliuyong

@wangliuyong 谢谢

KieSun avatar Jul 19 '18 09:07 KieSun

class MyDate extends Date { test() { return this.getTime() } } let myDate = new MyDate() myDate.test() 这个我试了 在chrome里面没问题

yuu2lee4 avatar Jul 21 '18 13:07 yuu2lee4

想了半天下面的reduce的返回数组为什么要多加一个[]呢?

const flattenDeep = (arr) => Array.isArray(arr)
  ? arr.reduce( (a, b) => [...flattenDeep(a), ...flattenDeep(b)] , [])
  : [arr]

flattenDeep([1, [[2], [3, [4]], 5]])

zgw010 avatar Jul 23 '18 23:07 zgw010

@Hasaki1997 数组是给 reduce 用的

KieSun avatar Jul 24 '18 01:07 KieSun

说些题外话,代码写得好的大神,写起中文来也是非常厉害,一句话能写出四个语法错误(位于https://yuchengkai.cn/docs/about/):

求职:如果你能提供一份杭州不错的前端岗位机会,可以联系我的邮箱

  1. “如果”+句子, 逗号后应是另一个句子。
  2. “联系我的邮箱”?
  3. “一份机会”?
  4. (“杭州不错的前端岗位”)“机会”, 有“的”字的形容词通常放在没有“的”字的前面。

好吧,我承认我也经常犯这样的错误。

AquaJerry avatar Jul 24 '18 09:07 AquaJerry

@AquaJerry 真的给大佬跪了😂

KieSun avatar Jul 24 '18 09:07 KieSun

@AquaJerry 6的不行

naihe138 avatar Jul 24 '18 09:07 naihe138

@KieSun ,请问在 https://yuchengkai.cn/docs/zh/frontend/#this ,这个例子中

function foo() {
	console.log(this.a)
}
var a = 2
foo()

var obj = {
	a: 2,
	foo: foo
}
obj.foo()

// 以上两者情况 `this` 只依赖于调用函数前的对象,优先级是第二个情况大于第一个情况

// 以下情况是优先级最高的,`this` 只会绑定在 `c` 上,不会被任何方式修改 `this` 指向
var c = new foo()
c.a = 3
console.log(c.a)

// 还有种就是利用 call,apply,bind 改变 this,这个优先级仅次于 new

第一个 a 是不是应该改为等于1

blackhu0804 avatar Jul 26 '18 07:07 blackhu0804

@hu970804 :thumbsup:

timeTravelCYN avatar Jul 26 '18 07:07 timeTravelCYN

@hu970804 恩,改为 1 更加清楚。

KieSun avatar Jul 26 '18 08:07 KieSun