前端——笔试

博客涵盖数据结构和编程基础内容。数据结构方面介绍了堆(完全二叉树)、树、二叉树等概念及遍历方式;编程基础涉及日期创建、对象键获取、函数返回值、数据类型转换、HTML5输入类型,还给出用原生JS实现编程动画的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.堆的形状:完全二叉树

  • 树:n个节点的有限集合,有且仅有一个根节点,其余节点可分为m个根节点的子树
  • 节点的度:一个节点拥有子树的个数称为度
  • 树的度:节点的度的最大值
  • 叶子节点:度为0的节点
  • 树的深度:节点的最大层次
  • 二叉树:每个节点最多拥有两个子节点
  • 遍历
    • 深度优先遍历:先序遍历
    • 广度优先遍历:从左到右,一层一层遍历
  • 平衡二叉树:当且仅当两个子树的高度差不超过1。
  • 满二叉树:高度:h ,节点:2^h - 1
  • 完全二叉树:除最后一层外,其余每一层节点个数都是最大值
  • eg: 度为0的节点:n0,度为1的节点:n1(0/1个) ,度为2的节点:n2
    • n0 = n2 + 1
    • n(完全二叉树的节点总数) = n0 + n1 + n2
    • n = 2*n0+n1 -1
    • n0 = (n+1)/2

2.0 == ""为true
3.创建日期:日期的月份从0开始,new Date(1998,0,10)
4.Object.keys():返回的是一个包含对象中不重复的键的数组

var a = {1:'one',2:'two',2:'tree'};
var b = Object.keys(a);
console.log(b);[1,2]

5.函数表达式声明,没有返回值时返回undefined

var a = function () { };
console.log(a());

6.本来是字符串类型,经过运算变成布尔类型

var x = 'foo';
x = !!x;
console.log(x);//true

7.HTML5的input新增输入类型

  • color number range email url search
  • date pickers(date, month, week, time, datetime, datetime-local)

8.编程动画,全部用原生JS实现
先创建两个div,同行显示
第一个div A以5像素/100毫秒向B移动,碰到第二个div B后停止
第二个div B以同样的速度向相同方向移动

for(var i = 0; i < 2; i++) {
   var div = document.createElement('div');
    div.style.width = 50 + 'px';
    div.style.height = 50 + 'px';
    div.style.backgroundColor  = 'red';
    div.style.display = 'inline-block';
    div.style.position = 'absolute';
    div.style.left = 200*(i+1) + 50*i + 'px';
    document.body.append(div);
}
var box = document.getElementsByTagName('div');
box[1].style.backgroundColor = 'green';
var timer1 = null,x = box[0].offsetLeft;
timer1 = setInterval(function() {
	x += 5;
	if(x <= 400) {
		box[0].style.left = x + 'px';
	}else {
		clearInterval(timer1);
		var timer2 = null,y = box[1].offsetLeft;
		timer2 = setInterval(function() {
			y += 5;
			if(y <= 800) {
				box[1].style.left = y + 'px';
			}else {
				clearInterval(timer2);
			}
		}, 100);
	}
},100)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值