前端学习提醒
vscode
1:var与let
2:const声明常量
3:解构
4:字符串api
5:字符串模板
6:字符串中动态插入变量、表达式、函数
7:为函数参数设置默认值
8:向js方法中传入不定参数
9:声明函数的另一种方式:箭头函数
10:插值表达式
11:事件绑定
12:双向绑定
13:绑定方法
14:v-bind
15:watch(监听器)
16:Vue组件化思想
17:生命周期与钩子函数
前端学习提醒
在使用vscode进行前端开发的时候,插件可以提高开发效率,好用的插件有:
1>Live Server: 实时监控代码修改导致的页面变化。
vscode工具使用:
1:代码格式化:alt+shift+f
- var声明的变量会越狱,let声明的变量有严格的作用域。
- var可以重复声明一个变量,let不可以重复声明一个变量。
案例1:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//var声明的变量会越狱
//let声明的变量有严格的作用域
{
var a = 1;
let b = 2;
}
console.log(a); //1
console.log(b); //报错 : Uncaught ReferenceError: b is not defined
</script>
</body>
</html>
案例2:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//var可以重复声明一个变量
//let不可以重复声明一个变量
{
var a = 1;
var a = 10;
let b = 2;
let b = 20;
}
console.log(a); //2
console.log(b); //报错 :Uncaught SyntaxError: Identifier 'b' has already been declared
</script>
</body>
</html>
- const修饰常量
- 声明必须初始化
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
const o ; //Uncaught SyntaxError: Missing initializer in const declaration
//未捕获的SyntaxError: const声明中缺少初始化式
const a = 1;
a = 2; //Uncaught TypeError: Assignment to constant variable.
//未捕获的TypeError:赋值给常量变量。
</script>
</body>
</html>
- 解构数组
- 解构对象
案例1:解构数组
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr = [1,2,3];
var [a,b,c] = arr;
console.log(a,b,c); //打印:1,2,3
</script>
</body>
</html>
案例2:解构对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
const person = {
name : "jack",
age : 21,
like : ['篮球','足球']
}
var {name,age,like} = person;
console.log(name,age,like);
var {name:abc,age,like} = person;
console.log(abc,age,like);
</script>
</body>
</html>
<body>
<script>
var str = "lalala.java";
console.log(str.startsWith("l")); //字符串以什么开头
console.log(str.endsWith("java")); //字符串以什么结束
console.log(str.includes("la")); //字符串是否包含
</script>
</body>
5:字符串模板 跳转链接
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let ss = `<div><span>hello world</span></div>`;
console.log(ss); //打印:<div><span>hello world</span></div>
</script>
</body>
</html>
6:字符串中动态插入变量、表达式、函数 跳转链接
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
const person = {
name : "jack",
age : 21,
like : ['篮球','足球']
}
var {name,age,like} = person;
function f(){
return "小逼崽子,是不是没见过黑社会?";
}
//插入变量
let str = `姓名${name},年龄${age},爱好${like}`;
console.log(str);//打印 : 姓名jack,年龄21,爱好篮球,足球
//插入表达式
let str2 = `姓名+年龄:${name+age}`
console.log(str2);//打印 : 姓名+年龄:jack21
//插入函数
let str3 = `${f()}`;
console.log(str3);//小逼崽子,是不是没见过黑社会?
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function f(a,b=1){//new()新建Vue实例
console.log(a+b);
}
f(1);//此时只是向函数中传递了一个值
//打印:2
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function f(...a){//new()新建Vue实例
console.log(a.length);
}
f(1,2,3);
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//声明函数的一种方式
var print = function(obj){//new()新建Vue实例
console.log(obj);
}
print("hello");
//声明函数的另一种方式:箭头函数
var print2 = obj => console.log(obj);
print2("hello2");
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<h1>{{name}},奥里给</h1>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
let vm = new Vue({//new()新建Vue实例
el : "#app",
data : {
name:"张三"
}
});
</script>
</body>
</html>
```html
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<button v-on:click="num++">点赞</button>
<h1>有{{num}}个人为他点赞</h1>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
let vm = new Vue({//new()新建Vue实例
el : "#app",
data : {
name:"张三",
num:1
}
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<input type="text" v-model="num">
<h1>有{{num}}个人为他点赞</h1>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
let vm = new Vue({//new()新建Vue实例
el : "#app",
data : {
name:"张三",
num:1
}
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<button v-on:click="add">点赞</button>
<h1>有{{num}}个人为他点赞</h1>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
let vm = new Vue({//new()新建Vue实例
el : "#app",
data : {
name:"张三",
num:1
},
methods:{
add(){
this.num = this.num+2
}
}
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<a v-bind:href="link">点击</a>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
let vm = new Vue({
el : "#app",
data : {
link:"http://www.baidu.com"
}
});
</script>
</body>
</html>
16:Vue组件化思想 跳转链接
- 定义全局组件
- 定义局部组件
案例:全局组件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script src="./node_modules/vue/dist/vue.js"></script>
<div id="app">
<button v-on:click="count++">{{count}}</button>
</div>
<script>
//全局声明注册一个组件
Vue.component("counter",{ //组件名:counter
template:`<button v-on:click="count++">{{count}}</button>` ,
data(){
return{
count:1
}
}
});
new Vue({ //新建Vue实例
el:"#app",
data:{
count:1
}
})
</script>
</body>
</html>
案例:局部组件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script src="./node_modules/vue/dist/vue.js"></script>
<div id="app">
<button v-on:click="count++">{{count}}</button>
</div>
<script>
//局部声明一个组件
const buttonCounter = {
template:`<button v-on:click="count++">{{count}}</button>`,
data(){
return{
count:1
}
}
}
new Vue({ //新建Vue实例
el:"#app",
data:{
count:1
},
components:{
'button-counter':buttonCounter //组件名:button-counter
}
})
</script>
</body>
</html>
17:生命周期与钩子函数 跳转链接