thinkfish

Results 12 comments of thinkfish

`[...new Set(arr.toString().split(',').map(Number).sort((a,b)=>{ if(a>b){return -1}else {return 1}}))]` 仅针对目前的这题,这个写法不太严谨,没有对数据类型做验证

> 请问,为什么要 fn.apply(this, arguments);而不是这样 fn() 如果demo一中的sayHi()方法其实,没有什么区别 但是如果sayHi这个callback要改变this的指向,或者要更方便的传参的话用apply就比较方便 用call或bind也可以 这里引申的话会有俩经常会聊到的问题 1,call,apply,bind的区别 2,this的指向 这俩应该是面试必聊的问题,可以好好整理一下。博主的这个面试题的系列中这俩都有说到。

> 我开始也这么理解:第二个参数需要的范围是2~36之间,如果小于 2 或者大于 36,则 parseInt() 将返回 NaN。但是parseInt(5,4),第二个参数在[2,36]之间,但是结果依旧返回NaN啊。 > 所以后俩返回NaN,我们是不是又两种角度可以理解呢? 你这是两个问题 第1 超出2-36这个范围的有一个特殊数字0是允许的。如果是0则看字符串是否以0x,0开头,若以0x开头解析成16进制,0开头以前有版本解析成8进制,现在的规范基本都解析成10进制,还有其他的一些约束,可以看一下官方文档 第2 parseInt('5',4)为什么会返回NaN,因为4进制中只有0,1,2,3这几个数字,跟2进制中只有0,1这两个数一样。5已经超出4进制的范围了(可以用4进制来表述10进制的5),所以返回NaN

> > 根据上边大家所述的原理,事实上如果想要完成字符串转化为数字的工作,应该将进制限制下来: > > ``` > > > ['1','2','3'].map(n=>parseInt(n,10)) > > > ``` > > 当然最简单就是干脆别传这个index了,免得像parseInt()这种可以接受多个参数的函数面对一大堆参数时不知所措 > > ``` > > > ['1','2','3'].map(n=>parseInt(n)) > > > ``` > >...

> @thinkfish 哈哈 实际应用肯定是最小减少问题,但原理了解透彻还是很有必要的嘛 在理,至少在遇到问题的时候能快速定位

[...new Set(arr.toString().split(',').sort(function(a,b){return a-b}).map(Number))]

> then()到底是同步执行还是异步执行?为什么回答里有的说是同步有的说是异步 根据上面的回答,总结下应该是then函数本身是同步,then里面的cb是异步

for(var i = 0; i < 10; i++){ (function(){ console.log(i) })() }

对于用户来说没有什么区别,都是从一个旧地址跳转到了一个新地址,内容也指向了新地址,主要区别在搜索引擎 301: 认为旧地址不会再用到,会把地址跟内容都更新成新地址及其内容 302: 未登录用户跳转到登录页,请求地址404,跳转到首页等操作,只是临时的。搜索引擎认为跳转只是临时的,保留旧地址,抓取新的内容。

``` let sleep = function (time){ return new Promise((resolve,reject)=>{ setTimeout(resolve,time) }) } sleep(1000).then(res=>{ //do something }) ```