周一笔记
1、闭包:
外层函数嵌套内层函数,并且内层函数作为外层函数的返回值返回出去的形式
function outer() {
let money = 5000
function inner() {
console.log(money)
}
return inner
}
let fn = outer()
fn()
作用:可以在函数的外部访问函数的内部的局部变量
把这些变量始终保存在内存当中
2、立即执行函数:(多个立即执行函数之间要利用封号作为这个立即执行函数的结尾)
(1)(function () { console.log("1111") })();
(2)(function () {
console.log("你们都是大可爱")
}());
3、对象:(对象的所有键名必须是字符串)
let obj = {
uname: "zhangsan",
'age': 21,
'height': 162,
'1': "a",
'3.14': true,
1: "11",
'1p': "cdcdj"(以数字开头的要加引号,单独的数字不需要)
}
<1>属性进行查看:
(1)对象名.属性
console.log(obj.uname)
(2)对象名["属性名"]
console.log(obj['uname'])
<2>删除对象的属性:
delete obj.height
console.log(obj)
<3>in运算符:
console.log("uname" in obj)
<4>循环遍历:
for (let i in obj) {
console.log(typeof (i))
console.log(obj[i])
}
<5>更新值:
obj.uname = "lisi"
obj.age = 666
console.log(obj)
<6>with:
with (obj) {
uname: "wangmazi" (obj.uname="wangmazi")
age: 22 (obj.age = 666)
}
console.log(obj["uname"])
var obj1 = {
p1: 1,
p2: 2,
fn: function () {
console.log("666")
}
};
with (obj1) {
p1 = 4;
p2 = 5;
}
console.log(obj1)
obj1.fn()
4、定时器:
(1)setTimeout():某个函数或者某段代码在多少毫秒之后进行执行
setTimeout(函数|代码,推迟执行的毫秒数)
setTimeout(() => {
document.write(`hello,world!!!`)
}, 3000)
function fn() {
console.log(666)
setTimeout(fn, 3000)
setTimeout('console.log("666")', 3000)
setTimeout返回一个整数,标识定时器的编号
let timer = setTimeout('console.log("666")', 3000)
console.log(timer)
传参
setTimeout(function (a, b) {
console.log(a + b)
}, 3000, 1, 2)
let y = 11
let obj = {
x: 2,
y: 3,
fn: function () {
console.log(this.y)
}
}
setTimeout(function () {
obj.fn()
}, 2000)
setTimeout(obj.fn.bind(obj), 1000)
(2)setInterval():无限次的定时执行
let timer = setInterval(() => {
console.log("666")
}, 1000)
console.log(timer)
(3)清除定时器
clearInterval(timer)
5、获取元素对象:
(1)根据css选择器进行获取
<div class="box1">你是一个盒子</div>
<script>
let box1 = document.querySelector('.box1')
console.log(box1)
</script>
<ul>
<li>1</li>
<li>1</li>
<li id="li3">3333</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
<script>
let lis = document.querySelectorAll("ul li") (lis是伪数组,通过循环遍历获取dom对象)
console.log(lis)
for (let i = 0; i < lis.length; i++) {
lis[i].style.color = "pink"
}
</script>
(2)通过id名、class类名、标签名获取
let li3 = document.getElementById('li3')
let div = document.getElementsByClassName("box1")
doucument.getElementsByTagName('')
6、innerText、innerHTML:(innerHTML可以识别标签,而innerText不可以 )
<div class="box">我是原来盒子本身的文字</div>
<script>
let box = document.querySelector('.box')
box.innerText = "666"
box.innerHTML = "777"
box.innerText = `<h1>666</h1>`
box.innerHTML = `<h1>777</h1>`
</script>
周三笔记
1、闭包:
外层函数嵌套内层函数,并且内层函数作为外层函数的返回值返回出去的形式
function outer() {
let money = 5000
function inner() {
console.log(money)
}
return inner
}
let fn = outer()
fn()
作用:可以在函数的外部访问函数的内部的局部变量
把这些变量始终保存在内存当中
2、立即执行函数:(多个立即执行函数之间要利用封号作为这个立即执行函数的结尾)
(1)(function () { console.log("1111") })();
(2)(function () {
console.log("你们都是大可爱")
}());
3、对象:(对象的所有键名必须是字符串)
let obj = {
uname: "zhangsan",
'age': 21,
'height': 162,
'1': "a",
'3.14': true,
1: "11",
'1p': "cdcdj"(以数字开头的要加引号,单独的数字不需要)
}
<1>属性进行查看:
(1)对象名.属性
console.log(obj.uname)
(2)对象名["属性名"]
console.log(obj['uname'])
<2>删除对象的属性:
delete obj.height
console.log(obj)
<3>in运算符:
console.log("uname" in obj)
<4>循环遍历:
for (let i in obj) {
console.log(typeof (i))
console.log(obj[i])
}
<5>更新值:
obj.uname = "lisi"
obj.age = 666
console.log(obj)
<6>with:
with (obj) {
uname: "wangmazi" (obj.uname="wangmazi")
age: 22 (obj.age = 666)
}
console.log(obj["uname"])
var obj1 = {
p1: 1,
p2: 2,
fn: function () {
console.log("666")
}
};
with (obj1) {
p1 = 4;
p2 = 5;
}
console.log(obj1)
obj1.fn()
4、定时器:
(1)setTimeout():某个函数或者某段代码在多少毫秒之后进行执行
setTimeout(函数|代码,推迟执行的毫秒数)
setTimeout(() => {
document.write(`hello,world!!!`)
}, 3000)
function fn() {
console.log(666)
setTimeout(fn, 3000)
setTimeout('console.log("666")', 3000)
setTimeout返回一个整数,标识定时器的编号
let timer = setTimeout('console.log("666")', 3000)
console.log(timer)
传参
setTimeout(function (a, b) {
console.log(a + b)
}, 3000, 1, 2)
let y = 11
let obj = {
x: 2,
y: 3,
fn: function () {
console.log(this.y)
}
}
setTimeout(function () {
obj.fn()
}, 2000)
setTimeout(obj.fn.bind(obj), 1000)
(2)setInterval():无限次的定时执行
let timer = setInterval(() => {
console.log("666")
}, 1000)
console.log(timer)
(3)清除定时器
clearInterval(timer)
5、获取元素对象:
(1)根据css选择器进行获取
<div class="box1">你是一个盒子</div>
<script>
let box1 = document.querySelector('.box1')
console.log(box1)
</script>
<ul>
<li>1</li>
<li>1</li>
<li id="li3">3333</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
<script>
let lis = document.querySelectorAll("ul li") (lis是伪数组,通过循环遍历获取dom对象)
console.log(lis)
for (let i = 0; i < lis.length; i++) {
lis[i].style.color = "pink"
}
</script>
(2)通过id名、class类名、标签名获取
let li3 = document.getElementById('li3')
let div = document.getElementsByClassName("box1")
doucument.getElementsByTagName('')
6、innerText、innerHTML:(innerHTML可以识别标签,而innerText不可以 )
<div class="box">我是原来盒子本身的文字</div>
<script>
let box = document.querySelector('.box')
box.innerText = "666"
box.innerHTML = "777"
box.innerText = `<h1>666</h1>`
box.innerHTML = `<h1>777</h1>`
</script>
作业
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
.w {
width: 900px;
margin: 0 auto;
}
.controls textarea {
width: 878px;
height: 100px;
resize: none;
border-radius: 10px;
outline: none;
padding-left: 20px;
padding-top: 10px;
font-size: 18px;
}
.controls {
overflow: hidden;
}
.controls div {
float: right;
}
.controls div span {
color: #666;
}
.controls div .useCount {
color: red;
}
.controls div button {
width: 100px;
outline: none;
border: none;
background: rgb(0, 132, 255);
height: 30px;
cursor: pointer;
color: #fff;
font: bold 14px '宋体';
transition: all 0.5s;
}
.controls div button:hover {
background: rgb(0, 225, 255);
}
.controls div button:disabled {
background: rgba(0, 225, 255, 0.5);
}
.contentList {
margin-top: 50px;
}
.contentList li {
padding: 20px 0;
border-bottom: 1px dashed #ccc;
}
.contentList li .info {
position: relative;
}
.contentList li .info span {
position: absolute;
top: 15px;
left: 100px;
font: bold 16px '宋体';
}
.contentList li .info p {
position: absolute;
top: 40px;
left: 100px;
color: #aaa;
font-size: 12px;
}
.contentList img {
width: 80px;
border-radius: 50%;
}
.contentList li .content {
padding-left: 100px;
color: #666;
word-break: break-all;
}
.contentList li {
display: flex;
justify-content: space-between;
align-items: center;
}
.contentList li img {
vertical-align: middle;
margin-right: 30px;
}
.contentList li button {
width: 80px;
height: 30px;
line-height: 30px;
text-align: center;
background-color: #afaaaa;
border: 0px;
border-radius: 15px;
margin-left: 20px;
filter: blur(.3);
}
</style>
<link rel="stylesheet" href="css/weibo.css">
</head>
<body>
<div class="w">
<div class="controls">
<img src="images/tip.png" alt=""><br>
<textarea placeholder="说点什么吧..." id="area" cols="30" rows="10" maxlength="200"></textarea>
<div>
<span class="useCount">0</span>
<span>/</span>
<span>200</span>
<button id="send">发布</button>
</div>
</div>
<div class="contentList">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
<script>
let btn=document.querySelector("button")
btn.addEventListener("click",()=>{
})
let ul = document.querySelector("ul")
let newLi = document.createElement("li")
newLi.innerHTML = `<img src="./03.jpg">`
let txt = document.querySelector("textarea")
txt.addEventListener("keydown", function (e) {
console.log(e.key)
if (e.key === "Enter") {
}
})
</script>
</body>
</html>