js中的变量声明

一、 es5和es6中变量声明的区别

变量提升 块级作用域 重复声明
var
let、const 不会 不能

事件 Event

事件是您在编程时系统内发生的动作或者发生的事情——系统会在事件出现的时候触发某种信号并且会提供一个自动加载某种动作,列举一些可能发生的事件。

  • 用户在某个元素上点击鼠标或悬停光标。
  • 用户在键盘中按下某个按键。
  • 用户调整浏览器的大小或者关闭浏览器窗口。
  • 一个网页停止加载。
  • 提交表单。
  • 播放、暂停、关闭视频。
  • 发生错误。

定位与层级

1. 定位 position

1.1 静态定位 static

每个元素的默认值,将元素放入它在文档布局流中的正常位置。

1.2 相对定位 relative

开启定位后,可以使用top、right、bottom,left四个属性设置偏移量。选择一个垂直方向和竖直方向上的偏移量即可为一个元素定位。

要点

  • 相对定位的元素不会脱离文档流
  • 开启相对定位后,如果不设置偏移量,元素不会发生任何变化
  • 相对定位是相对于元素在文档流中原来的位置进行定位
  • 相对定位会使元素提升一个层级
  • 相对定位不会改变元素的性质

浮动与BFC

1. 浮动的工作原理

浮动会脱离正常的文档流,并吸附到其父容器左边,正常布局中位于浮动元素下的内容会围绕着浮动元素

2.可选值

效果
none 默认值,元素默认在文档流中排列
left 元素会立即脱离文档流,向页面的左侧浮动
right 元素会立即脱离文档流,向页面的右侧浮动

Java的字符串操作

一、比较

语言 操作 形式 机制 线程安全性
c/c++ char* 字符指针 通过手动修改指针指向的内存空间修改字符串 未知
c/c++ String 容器类 内部使用char数组存储字符,但内存管理,分配和null终止都由字符串类本身来处理 并发的读操作是线程安全的
Java String 1. String a = “a”,是以字面常量的形式储存在常量池中
2. new String(“a”) 创建的以对象的形式存放在堆中
对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象 安全
Java StringBuilder 对象 所有操作都在原有的对象上进行 不安全
Java StringBuffer 对象 所有操作都在原有的对象上进行 安全

仿网易云音乐的对话气泡框

主要就是对话框小三角的实现,效果如下

1

主要难点就是三角形的实现,有两种思路,一种是利用border,网易云音乐是用两个 ◆ 层叠显示边框的,下面是核心代码

html

1
2
3
4
5
6
7
8
<div class="comment">
<span class="darr">
<i class="bd"></i>
<i class="bg"></i>
</span>
<a href="#">liang</a>
<span>嘤嘤嘤呀呀呀呀呀呀晕晕晕晕</span>
</div>

css

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
.comment {
position: relative;
width: 200px;
padding: 10px 15px;
background-color: #f4f4f4;
text-align: left;
border: 1px solid #dedede;
}

.darr {
position: absolute;
top: -7px;
left: 20px;
font-size: 15px;
line-height: 14px;
}

i {
font-style: normal;
position: absolute;
top: 0;
left: 0;
}

.bg {
color: #f4f4f4;
top: 1px;
}

// 边框
.bd {
color: #dedede;
}