【书名】《JavaScript权威指南》第七版 【笔记】JavaScript字符串是16位整数值的序列,而字符串比较就是比较两个字符串的数值序列。Unicode定义的这个数值编码顺序不一定与特定语言或地区使用的传统校正顺序(collation order)匹配。特别要注意字符串比较是区分大小写的,而所有大写ASCII字母比所有小写ASCII字母都小。如果不留意,这条规则很可能导致令人不解的结果。 如果需要更可靠的字符串比较算法,可以用String.localeCompare()方法,这个方法也会考虑特定地区的字母表顺序。要执行不区分大小写的比较,可以使用String.toLowerCase()或String.toUpperCase()把字符串转换为全小写或全大写。 +操作符和比较操作符同样都会对数值和字符串操作数区别对待。+偏向字符串,即只要有一个操作数是字符串,它就会执行拼接操作。而比较操作符偏向数值,只有两个操作数均为字符串时才按字符串处理。
展开
评论
【书名】《JavaScript权威指南》第七版 【笔记】关系表达式 JavaScript对象是按引用而不是按值比较的。对象与自己相等,但与其他任何对象都不相等。即使两个对象有同样多的属性,每个属性的名字和值也相同,那它们也不相等。类似地,两个数组即使元素相同、顺序相同,它们也不相等。 如果一个或两个值是NaN,则不相等(虽然有点意外,但NaN确实不等于任何其他值,也包括NaN自身!要检查某个值x是不是NaN,使用x !== x或全局isNaN()函数)。 对象转换为原始值时要么使用其toString()方法,要么使用其valueOf()方法。JavaScript内置的核心类先尝试使用valueOf(),再尝试toString()。但Date类是个例外,这个类执行toString()转换。
展开
评论
一道算法题会做固然重要,但思维的过程同样重要,有正确的方向,能更快找到入口,也更少出问题: 1、模拟,用题目所给场景的简单子集做模拟,观察特点。 2、规律,基于第一步的模拟找规律,是什么类型的数据,操作特点是什么。 3、匹配,和具备相关特点的数据结构及算法做匹配。 4、边界,总有一些情况会使常规方法出现异常或者可以直接结束返回结果,需额外判断。 如果光靠想想不明白,可以画图作为辅助。 有了这几个过程,拿到算法题就不会完全没有头绪不知从哪里入手了。
展开
评论
今日算法:只出现一次的数字 给定数字数组,除了一个单个数字外,其余都是两个数字,找出只出现一次的数字。 常规思路: 1、找个集合作为容器,遍历数组,集合中没有那个数字,就放进去,如果有,从集合中删掉,最后集合剩下的就是只出现一次的。 2、同样找个集合,把数组中的数字都放进去,乘以2,再减去原数组中所有元素的和,就是那唯一的元素。 有常规思路,就有非常规思路,看图。
展开
灵感__idea于2021-04-14 22:57发布的图片
4
分享一个问题解决方案: 平时喜欢玩demo的朋友应该会写一小段代码然后看运行结果,通常可以这样做: 1、新建html,在浏览器打开。 2、直接浏览器控制台敲。 3、找个在线代码运行平台,既能写代码看效果,也方便分享。 但是对编码人员最便利的是,除了编辑器什么都不用打开。vscode的code-runner就可以做到,使用node运行程序,安装之后右键run就可以,但可能会遇到如图一的报错,是node没装?什么文件的路径不对?可能都不是,尝试一下在图二setting中添加配置项就可能解决~
展开
灵感__idea于2021-04-05 11:10发布的图片
灵感__idea于2021-04-05 11:10发布的图片
评论
小问题才是问题,只有深入细节,才不陷入平庸。
评论
资深就要有资深的样子: 经验丰富,解决问题,性能优化,技术敏感。 找找差距吧~
2
从语法到程序,是第一道屏障。 从程序到算法,是第二道屏障。 这道屏障是,不用一种可行性方案解决一个问题,而是用通用且高效的方案解决一类问题。 关键词:抽象、通用、高效。
灵感__idea于2021-04-01 09:00发布的图片
灵感__idea于2021-04-01 09:00发布的图片
4
滑动窗口:最长子串 要点: 从第一个开始计算,没有重复就一直累加.拿到result。 当出现重复,需要一个新的起点,即前一个重复字符的后一位,否则就一直存在重复。 拿到新起点后,仍是前面的步骤,计算当前位置和新起点之间的长度,拿它和之前取得的result做比较,谁大取谁。 直到字符串结尾。 “滑动窗口”也是能够解决一类问题,这里只是简单示例,更多的待大家一起探索~
展开
灵感__idea于2021-03-30 00:34发布的图片
评论
贪心算法:当前情况下的局部最优解 目标:最少步数到达最后一个位置 思路: 至少先走一步,否则没法知道下面怎么走; 但是,这一步走到哪是不确定的,取决于后面位置的值能否超过它的覆盖范围。 此题为例,起点可以走两格,furthest被赋2,i等于end,步数加1,end被赋2。 第二位是3,3+1是4,第三位是1,1+2是3,起点最远走到这,过程中发现了4,所以furthest被赋4。 当位置i和end不等时,不需要加步数,就好比,如果这里的数组是[2,3,1],从起点可以一次走到最后,则不管后面是什么都不用走了,只有位置i和最远距离end发生重合(说明还没到最后),才需要走下一步。 这里要继续往下看接下来的位置和值有没有超过4的。如果有,再给furthest,没有,furthest不需要变。 当位置和end再次重合,即i等于2时,步数加1为2,end位置后移到4。 后面的位置中,1+2是3,1+3是4,没有能超过前面的范围了,最大只是相等,而循环已经进行完。 furthest保持不变,步数也保持不变,得出结果。 这只是一个小例子,这种算法可以解决很多类似场景的问题,待后续分享。
展开
灵感__idea于2021-03-29 12:13发布的图片
评论
今日算法:有效括号验证 思路: 左括号不断入栈(push) 遇到非左括号,左括号出栈(pop),做右括号匹配验证,不匹配直接返回false 匹配则继续向下验证,直到验证完毕,查看栈是否为空,为空则全部匹配成功,否则返回false
灵感__idea于2021-03-26 10:20发布的图片
评论
继续为前端伙伴谋福利。 除了文章和组件包,又来分享算法题了~ 题:给一组数,求两数之和为目标值的索引值。(如图) 很多小伙伴都谈“算”色变,其实大可不必,算法思维能帮助我们变得更聪明(节省时间/空间),从易到难,循序渐进,便可乐在其中。 代码同步github。 https://github.com/linggan100/data-structuregithub.com
展开
灵感__idea于2021-03-25 16:57发布的图片
灵感__idea于2021-03-25 16:57发布的图片
5
写了个小组件,以后除了发文章,应该也会经常发一些有用的组件,欢迎提issue~ Vue—标签生成组件 https://taou.cn/xIIq6taou.cn
评论
推荐一本前端相关的算法电子书,这么好的整理很难得,作者还是挺给力的,可以支持下。 https://taou.cn/xI3w7taou.cn
灵感__idea于2021-03-23 09:41发布的图片
评论
Chrome浏览器几个实用技巧分享: 1、一键展开DOM树 右键:expand recursively 或者 alt+鼠标点击DOM元素左箭头 2、重新发送请求: 请求右键 Replay XHR 3、控制台输出上次计算的表达式结果 $_ 4、console.log同时输出多个值(键值对) console.log({ a, b });可清晰看到key和value,而不仅是value。 5、有些操作选项在面板上看不到,可以使用ctrl+shift+p(win),然后手动输入就能查到,比如: 网页截图,可选择“node、area、full size”,进行不同范围的精准截图。 6、可使用ctrl、shift、alt,或option、cmd和箭头组合来对面板中的数字进行0.1、1、10、100等多维度增减。在调试样式时比较有用。
展开
评论
由于Vue的易上手、学习曲线平滑,及作者是中国人的优势,近年势头高居不下,用户很多,但只要稍微观察就会发现,很多公司,包括大厂,都有用React在开发项目,虽说三大框架哪个都能用,但只掌握一个显然是不利的,最近在B站看到一个React的教程,讲得很不错,已经等不及看完再推荐了,需要的朋友一起学起来~ https://www.bilibili.com/video/BV1wy4y1D7JTwww.bilibili.com
灵感__idea于2021-03-14 15:48发布的图片
19
个人成就
获得点赞133
文章被阅读11,495
掘力值247
收藏集
18
关注标签
20
加入于