前端基础知识

前端学习提醒
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



1:var与let

  • 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>


2:const声明常量

  • 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>


3:解构

  • 解构数组
  • 解构对象

案例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>


4:字符串api

<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>


7:为函数参数设置默认值

<!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>


8:向js方法中传入不定参数

<!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>


9:声明函数的另一种方式:箭头函数

<!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>


10:插值表达式

<!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>


11:事件绑定


```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>


12:双向绑定

<!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>


13:方法绑定

<!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>


14:v-bind

<!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>


15:监听器



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:生命周期与钩子函数 跳转链接





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值