js基础
紫菜菌
总结每天的学习成果的辣鸡(但很帅)的人。。O(∩_∩)O哈哈~
展开
-
正整数数组排列成最小的数字
题目:输入一个正整数数组,将所有元素排列成最小的数字后输出function PrintMinNumber(numbers){if(numbers.length==0) return false;else{var str=numbers+’’;var arr=str.split(’,’);arr.sort((a,b)=>{return (a+b)-(b+a);})return parseInt(arr.join(’’));}}console.log(PrintMinNumber原创 2020-05-11 00:36:50 · 273 阅读 · 0 评论 -
长数组拆分成和最接近的两个数组
题目:输入一个大数组拆分成和最接近的两个数组,并返回。const arr = [1,23,544,64,47,56,12,456,32,12,132]; function twoArrSum(arr){ var arr1=[],arr2=[]; var sum1=0,sum2=0; arr.sort((a,b)=>b-a); //必须从大到小排序。因为大数不需先保证分配正确,小数可不分原创 2020-05-09 18:37:14 · 882 阅读 · 1 评论 -
浅谈 setState 更新机制
了解 React 同学想必对setState函数是再熟悉不过了,setState也会经常作为面试题,考察前端求职者对 React 的熟悉程度。在此我也抛一个问题,阅读文章前读者可以先想一下这个问题的答案。给 React 组件的状态每次设置相同的值,如setState({count: 1})。React 组件是否会发生渲染?如果是,为什么?如果不是,那又为什么?一、场景复现针对上述问题,先进...转载 2020-05-05 11:26:37 · 1220 阅读 · 1 评论 -
算术字符串输出运算结果
题目:给定一个字符串(内含一个运算表达式)输出运算结果(整数)。eg:输入:‘123+234-123+100=’输出:334var obj={ '+':(a,b)=>a+b, //箭头运算符 '-':(a,b)=>a-b //*** } ...原创 2020-04-22 22:21:32 · 1026 阅读 · 0 评论 -
数字转汉字
题目:输入一个正数(整数),大小不超过千亿。输出字符串类型的汉字。eg:输入:1001输出:一千零一function fn(n){ if(!/^([1-9]\d*)/.test(n)){ return '非法数据'; } var unit = '千百十亿千百十万千百十个'; if(n.length &g...原创 2020-04-22 21:41:25 · 380 阅读 · 0 评论 -
逆波兰表达式
题目:给定一个字符串数组(包括数字和运算符),根据逆波兰表达式输出结果。eg:输入:[“4”, “13”, “5”, “/”, “+”]输出:(4 + (13 / 5)) = 6var obj={ '+':(a,b)=>a+b, '-':(a,b)=>a-b, '*':(a,b)=>a*b, ...原创 2020-04-22 21:28:56 · 237 阅读 · 0 评论 -
树的子结构
题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)function HasSubtree(pRoot1, pRoot2) { //自身,左子树,右子树只要一个符合即为子结构 if(pRoot1==null||pRoot2==null){...原创 2020-04-19 09:50:22 · 88 阅读 · 0 评论 -
从上到下从左到右打印二叉树
从上到下从左到右打印二叉树:function PrintFromTopToBottom(root){ var arr=[]; var res=[]; //结果数组 if(root){ arr.push(root); } while(arr.l...原创 2020-04-12 16:44:40 · 318 阅读 · 0 评论 -
call,apply和bind的内部实现
call函数都可以调用call,apply,bind方法,所以函数方法要写在原型上 Function.prototype.ca_ll=function(){ let [thisArg,...arg]=arguments; //thisArg=window; thisArg.func=this; ...原创 2020-04-07 00:38:03 · 301 阅读 · 0 评论 -
根据对象数组的属性排序
一个由对象构成的数组,参数为所有对象共有的属性,输出排序结果<script> let a = [ { id: 12, name: 'zhangsan' }, { id: 20, name: 'lisa' },...原创 2020-04-06 00:19:21 · 248 阅读 · 0 评论 -
反转链表后输出新表头
输入一个链表,反转链表后,输出新链表的表头。function ReverseList(pHead) { // write code here var zhang=[]; var res=[]; v...原创 2020-04-05 00:17:25 · 124 阅读 · 0 评论 -
链表反序(不借助额外空间)
构造链表结构,反序输出链表构造链表结构: class Node{ constructor(val){ this.val=val; this.next=undefined; } } class lianbiao{ constru...原创 2020-04-04 00:55:45 · 317 阅读 · 0 评论 -
节流和防抖
函数防抖:是指频繁触发的情况下,只有足够的空闲时间,才执行代码一次。比如生活中的坐公交,就是一定时间内,如果有人陆续刷卡上车,司机就不会开车。只有别人没刷卡了,司机才开车。 function jie(fn,timer){ var startTime=0; return function(){ va...原创 2020-04-03 00:49:31 · 104 阅读 · 0 评论 -
红绿灯效果(Promise)
题目:红灯三秒亮一次,绿灯一秒亮一次,黄灯2秒亮一次;如何让三个灯不断交替重复亮灯?(用Promse实现)<style> #l{ width: 100px; height: 100px; /* background-color: blueviolet; */ border...原创 2020-04-02 01:03:25 · 499 阅读 · 0 评论 -
数据结构中常见的查找算法
常见的查找算法即七大查找算法:一:顺序查找二:二分查找三:插值查找四:费波那西查找五:数表查找六:分块查找七:哈希查找以二分查找为例: <script> var arr=[1,2,3,4,5,6,7,8,9,10]; function twoFind(arr,item,start,end){ if(item>...原创 2020-04-01 15:56:51 · 833 阅读 · 0 评论 -
实现类似getElementsByClassName
<div class="temp">11111</div> <div class="temp aa">22222</div> <div class="tempq aa">3333</div> <div class="bb temp">22222</div> <div...原创 2020-03-31 00:25:13 · 171 阅读 · 0 评论 -
前端面试:三数之和
题目:给出一个数组arr,返回一个二维数组,内部每个值都为三个数,且三数之和为0.样例输入:[-1, 0, 1, 2, -1, -4]样例输出:[[-1,0,1],[-1,2,-1]]//排序+双指针 function threeSum(arr){ var res=[]; if(arr.length<3){ ...原创 2020-03-29 22:38:49 · 183 阅读 · 0 评论 -
js引擎线程
浏览器包括4个进程:主进程(Browser进程),浏览器只有一个主进程,负责资源下载,界面展示等主要基础功能GPU进程,负责3D图示绘制第三方插件进程,负责第三方插件处理渲染进程(Renderer进程),负责js执行,页面渲染等功能,也是本章重点内容渲染进程主要包括GUI渲染线程、Js引擎线程、事件循环线程、定时器线程、http异步线程。JS引擎线程js引擎线程就是js内核,负责解析...原创 2020-03-19 22:49:26 · 490 阅读 · 0 评论 -
定时器会按规定的时间执行吗
** 定时器是规定在一段时间之后执行一段代码,但是在js执行中不会准确无误的按照预期的时间去执行定时器里面的代码。一个原因是W3C标准规定setTimeout中最小的时间周期是4毫秒,凡是低于4ms的时间间隔都按照4ms来处理。其实还有一个重要的原因,如果仔细看上面的文章,大家应该会想到在js执行的时候,主线程碰到定时器的时候,是不会直接处理的,应该是先把定时器事件交给定时器线程去处理,这时主...原创 2020-03-19 22:40:01 · 548 阅读 · 0 评论 -
算法之数字序列中某一位的数字
题目: 一个字符串由0~n,顺序的数字拼接而成。eg:01234567891011.。。。从0开始。输入0,返回0;输入10,返回1。<script> function FindnThNum(n){ var str='0123456789'; if(n<=9){ return st...原创 2020-03-17 01:00:24 · 181 阅读 · 0 评论 -
剪绳子问题
题目:给你一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1)要求:每段绳子的长度的最大乘积是多少?//动态规划 f(n)=max(f(n-i)*i) i 1~n-1 function jian(n){ if(n==2) return 2; //都是极限近似取值 if(n==3)...原创 2020-03-07 22:07:41 · 167 阅读 · 0 评论 -
javascript实现时钟效果
效果展示:初始效果:*{ margin: 0; padding: 0; } li{ list-style: none; } .clock{ width: 202px; height: 202px; border:1px dashed #666; margin: 100px auto; position: rel...原创 2019-06-29 23:57:19 · 398 阅读 · 0 评论 -
javascript实现不同形式参数的求和
function sum(x,y) { //argument属性,闭包 if(arguments.length>1) { return x+y; }else { return function(z) { return x+z; ...原创 2019-07-05 10:23:41 · 209 阅读 · 0 评论 -
javascript无缝滚动效果
效果图:代码实现:<style> * { margin: 0; padding: 0; } .box { border: 1px solid #333; width: 430px; height: 100px; padding: 10px 0; ...原创 2019-07-14 00:34:11 · 102 阅读 · 0 评论 -
javascript节点遍历方法总结
如题所示:<body> <div> <ul> <li></li> <li></li> <li></li> <li></li> ...原创 2019-06-26 22:45:05 · 648 阅读 · 0 评论 -
web前端javascript写出进度条效果
##效果展示:个人认为良性的互动与循序渐进的练习,才是学习好的好习惯。我也会以此践行我的学习总结之路。###初步布局与样式:```javascriptstyle样式:.box {width: 200px;border: 1px solid black;border-radius: 10px;overflow: hidden;}.inner {width: 200px;...原创 2019-06-26 00:15:46 · 499 阅读 · 0 评论