Chinese Dicuss
KieSun opened this issue · 44 comments
For Chinese developers to discuss.
提供给中文开发者讨论问题
Great
good job
nice
点个赞,帮助很大。如果图片可以支持放大就更好了, 某些图片字体过小,导致看不清
虽然 node 暂时没有计划 ,但还是很期待
数据结构二叉树的排名那里_select函数中if函数的判断条件应该是size > k - 1,当size = k -1时返回node。
因为要找第三大的数,左边size为2,要找的数才是它本身。
在 前端/js/typeof 下
有一段这样的代码
let a
// 我们也可以这样判断 undefined
a === undefined
// 但是 undefined 保留字,能够在低版本浏览器被赋值
let undefined = 1
// 这样判断就会出错
// 所以可以用下面的方式来判断,并且代码量更少
// 因为 void 后面随便跟上一个组成表达式
// 返回就是 undefined
a === void 0
最后的 a===void 0
应该改为 a = void 0
@Flying-Snail 代码没问题
@dekura 这里的目的就是为了判断a的值是否是undefined,=不就是a被赋值为undefined了么
@KieSun 额,node中的size是包含node本身的大小。比如有5个数,左子树3个,右子数1个。现在k为3,size取的是左子树的大小也就是3.这个时候是我们需要的节点是在左边,但是因为size=k,代码中的情况是返回root节点本身的。
@Flying-Snail 首先 select 是查找第几小的函数,第几小从 0 开始,所以当你有 5 个数分别为 7,1,3,4,8 时,依次排序为 1,3,4,7,8,从 0 开始排序,所以 select(3)
的答案为 7 ,也就是根节点
@KieSun 这个查找是从0开始的啊。。。
@Flying-Snail 恩,你可以阅读下算法(第四版),毕竟人家是权威。
@KieSun 好的~
// 但是 undefined 保留字,能够在低版本浏览器被赋值
应该说undefined不是保留字吧?
@Techiu undefined不是保留字,它是内置对象。只不过后来被设置了只读属性。
总结的很好,点个赞
@wangliuyong 谢谢
class MyDate extends Date {
test() {
return this.getTime()
}
}
let myDate = new MyDate()
myDate.test()
这个我试了 在chrome里面没问题
想了半天下面的reduce的返回数组为什么要多加一个[]呢?
const flattenDeep = (arr) => Array.isArray(arr)
? arr.reduce( (a, b) => [...flattenDeep(a), ...flattenDeep(b)] , [])
: [arr]
flattenDeep([1, [[2], [3, [4]], 5]])
@Hasaki1997 数组是给 reduce 用的
说些题外话,代码写得好的大神,写起中文来也是非常厉害,一句话能写出四个语法错误(位于https://yuchengkai.cn/docs/about/):
求职:如果你能提供一份杭州不错的前端岗位机会,可以联系我的邮箱
- “如果”+句子, 逗号后应是另一个句子。
- “联系我的邮箱”?
- “一份机会”?
- (“杭州不错的前端岗位”)“机会”, 有“的”字的形容词通常放在没有“的”字的前面。
好吧,我承认我也经常犯这样的错误。
@AquaJerry 真的给大佬跪了😂
@AquaJerry 6的不行
@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
@hu970804 👍
@hu970804 恩,改为 1 更加清楚。
安全部分:XSS要补上最重要的防御策略:http-only cookie, 通常XSS和CSRF是搭配使用的,比如用XSS偷cookie,再用CSRF做跨站请求(带上偷来的cookie)。
优化部分:利用图片URL请求回传客户端错误不是好的做法。
数据结构部分:与前缀数对应的还有个后缀树,通常解决最大子串问题,可以考虑加进来伐?
浏览器部分:可以考虑把WebAssembly WebVR WebRTC内容加进来
react 中 setState 这个 api 并不是绝对异步的,你可以在 一个 setTimeout 内调用多次这个 api,state 是立刻就被改变的。
@xixilive 如果以 setState 后发生的现象来说,改变可能是即刻也可能非即刻。但是 setState 实际做的是将更新的任务放到队列中,按你的说法,这应该是绝对同步了。
verynice
快排part函数第二参数不能这样传,这会导致left前面的部分不能与基准值比较,还有里面那个多了个swap
function quickSort(array, left, right) {
if (left < right) {
swap(array, , right)
// 随机取值,然后和末尾交换,这样做比固定取一个位置的复杂度略低
let indexs = part(array, parseInt(Math.random() * (right - left + 1)) + left, right);
quickSort(array, left, indexs[0]);
quickSort(array, indexs[1] + 1, right);
}
}
提个建议,脑图中网络相关-缓存部分应该放在http的下面
前端virtualDom 这个xxToNode是不是clone打错了
// 删除第三个 li
ul.childNodes[2].remove()
// 将第四个 li 和第五个交换位置
let fromNode = ul.childNodes[4]
let toNode = node.childNodes[3]
let cloneFromNode = fromNode.cloneNode(true)
let cloenToNode = toNode.cloneNode(true)
ul.replaceChild(cloneFromNode, toNode)
ul.replaceChild(cloenToNode, fromNode)
https://yuchengkai.cn/docs/zh/cs/#post-%E5%92%8C-get-%E7%9A%84%E5%8C%BA%E5%88%AB
303 see other,表示资源存在着另一个 URL,应使用 GET 方法丁香获取资源
303 see other,表示资源存在着另一个 URL,应使用 GET 方法获取资源
@KieSun 作者你好,我对Promise实现中的resolutionProcedure()函数有一点疑问,想请教一下,就是里面这一段:
规范确实是要求遇到x为Promise时要做这些处理,但是我觉得紧接着下面的这一段好像已经可以处理x为Promise的情况了,上面的这段看起来好像有点多余(?):
我的理解是下面这段可以处理x为thenable对象的情况,而x为Promise时也是thenable对象,所以同样可以被这一段处理,不需要上面的那段专门判断x是Promise的实例然后写相关处理。我试过去掉上面那段的代码,同样也是可以通过a+测试的:
不知道您有考虑过这方面吗?如果我理解有误欢迎指正,谢谢!
function checkArray(array) {
if (!array || array.length <= 2) return false;
return true;
}
function insertion(array) {
if(!checkArray(array)) return;
for (let i = 1; i < array.length; i++) {
for (let j = i - 1; j >= 0 && array[j] > array[j + 1]; j--)
swap(array, j, j + 1);
}
return array;
}
算法那块关于排序里面不符合条件拦截的,应该是上面这种
关于 js 类型转化 -> 对象转为基本类型 那里有些疑惑
假设有这么个对象
var a = {
toString () {
return 'toString'
},
valueOf () {
return 'valueOf'
}
}
alert(a) // toString
如果说,会优先调用 valueOf 的话,那为什么 alert 的结果是 toString ??