⼤多数⼩公司的⼯程师需要处理的数据量很少,只要完成业务功能就可以,学不学数据结构和算法没有任何差别。⼤⼚就完全不同 了——⼤⼚的⼯程师可能会⾯对⼏千万甚⾄⼏亿的注册⽤户,开发的是TB、PB级别的数据处理系统,需要利⽤各种中间件整合衔 接多个上下游系统——可⽤性、健壮性、响应速度这些最基本的性能指标是⼯程师时时刻刻都要关注和解决的问题。⼀个看似简单 的使⽤ArrayList还是LinkedList的决定,就可能会造成系统⼏千倍的性能差别——这既是整个计算机科学最让⼈着迷的地⽅,也是 最能体现思维模式、开发⽔平、动⼿能⼒的领域。
一、 ⾸先,能够⽤HTML + CSS + JavaScript在⻚⾯正中⽣成⼀幅⼴告图⽚
.html
我的命名有点随意是1.html
6. 代码如下
<!DOCTYPE html> <html> <head> <title>公告图片</title> <style type="text/css"> .c4{ border:1px solid #000; margin:0px auto; width: 500px; height: 500px; } img{ padding-top: 65px; padding-left: 50px; width: 380px; height: 320px; } </style> </head> <body> <div class="c4"> <img src="images/1.PNG"> </div> </body> </html>
代码讲解
二、其次,⽤JavaScript数组在⻚⾯上放置多张⼴告图⽚,同时动态计算不同⼴告位之间的布局,实现⽔平等间距布局
分析上图,知道自己需要用的的js语句
我直插入了两张照片,效果图如下
代码如下
<!DOCTYPE html> <html> <head> <title>公告图片</title> <style type="text/css"> .c4{ border:1px solid #000; margin:0px auto; width: 500px; height: 500px; } img{ padding-top: 165px; padding-left: 40px; width: 180px; height: 120px; } </style> <script type="text/javascript"> window.onload = function(){ var cImg1 = document.createElement("img");//创建一个img元素 var cImg2 = document.createElement("img");//创建一个img元素 cImg1.src = "images/1.PNG"; cImg2.src = "images/2.PNG"; var c = document.getElementsByClassName("c4")[0]; c.appendChild(cImg1); c.appendChild(cImg2); } </script> </head> <body> <div class="c4"> </div> </body> </html>
代码讲解
三、最后,⽤JavaScript代码实现多张⼴告图⽚轮播效果:在⻚⾯正中每隔3秒切换不同的⼴告图⽚,多张图⽚轮流显示
<!DOCTYPE html> <html> <head> <title>公告图片</title> <style type="text/css"> .c4{ border:1px solid #000; margin:0px auto; width: 500px; height: 500px; } img{ margin-top: 100px; margin-left: 100px; } </style> </head> <body> <div class="c4"> <img src="images/1.PNG" id="i1" style="display: block; width: 280px;height: 220px;"> <img src="images/2.PNG" id="i2" style="display: none;width: 280px;height: 220px;"> </div> </body> </html> <script type="text/javascript"> var i1 = document.getElementById("i1"); var i2 = document.getElementById("i2"); function n1(){ i1.style.display="none"; } function b1(){ i1.style.display="block"; } function b2(){ i2.style.display="block"; } function n2(){ i2.style.display="none"; } setInterval("n1()",3000); setInterval("b2()",3000); setInterval("n2()",6000); setInterval("b1()",6000); </script>
部分代码讲解:
在code.org上以「所⻅即所得(WYSIWYG)」的编码⽅式完成「应⽤实验室」系列任务
变量,条件和函数相关任务( https://studio.code.org/s/csp4-2020 )
列表、循环和遍历相关任务( https://studio.code.org/s/csp5-2020 )
计算机程序算法相关的任务( https://studio.code.org/s/csp6-2020 )
可选任务:参数、返回值和库( https://studio.code.org/s/csp7-2020 )
加深对代码逻辑和程序语法的理解
点击这3个链接进行学习
实现对数组[0,9,12,1,6,3,7,11]的冒泡排序
<!DOCTYPE html> <html> <head> <title>冒泡排序</title> </head> <script type="text/javascript"> var num=[0,9,12,1,6,3,7,11]; console.log(num); for(var j=0;j<num.length-1;j++){ for (var i = 0; i < num.length; i++) { if(num[i]>num[i+1]){ var temp = num[i]; num[i]=num[i+1]; num[i+1]=temp; } } } document.documentElement.innerHTML=num; </script> <body> <div id="n"></div> </body> </html>
代码解析
效果如下:
解释JavaScript中的堆和栈数据结构的区别
a=1,b=2使⽤⾄少三种⽅法交换变量a和b的值
答:
效果图如下:
代码如下:
<!DOCTYPE html> <html> <head> <title>转换两个数</title> </head> <script type="text/javascript"> var a = 1; var b = 2; // 第一种方式:引入临时变量进行数据交换 var temp = a; var a = b; var b = temp; console.log(a,b); // 第二种方式:运用数字之间的运算进行数据交换 a = a + b; b = Math.abs(a - b); a = Math.abs(b - a); console.log(a,b); // 第三种方式:运用数据进行数据交换 var a2=[a,b]; a=a2[1]; b=a2[0]; console.log(a,b); </script> <body> </body> </html>
使⽤for循环求出0~300之间的奇数之和
var h=0; for (var i = 0; i < 300; i++) { if(i%2 != 0){ h+=i; } } console.log(h);
去除数组[8, 7, 2, 1, 5, 0, 1, 9, 2]中重复的值,相同的值只保留⼀个
var number=[8, 7, 2, 1, 5, 0, 1, 9, 2]; for (var i = 0; i < number.length; i++) { for(var j = i+1;j<number.length;j++){ if(number[i]==number[j]){ number.splice(j,1); j--; } } } console.log(number);
使⽤⾮递归⽅式对数组[8, 7, 12, 1, 5, 0, 6, 9, 2]执⾏折半查找
function binSearch(arr,x){ var lowPoint=1; var higPoint = arr.length; var returnValue = -1; var midPoint; var found = false; while((lowPoint<=higPoint)&&(!found)){ midPoint=Math.ceil((lowPoint+higPoint)/2); if(x>arr[midPoint-1]){ lowPoint=midPoint+1; }else if(x<arr[midPoint-1]){ higPoint=midPoint-1; }else if(x=arr[midPoint-1]){ found=true } } if(found){ returnValue = midPoint; } return returnValue; } var arr=[8, 7, 12, 1, 5, 0, 6, 9, 2]; console.log(binSearch(arr,'6'));