JavaScript

什么是JavaScript*:
1.JavaScript(简称:js)是一门跨平台,面向对象的脚本语言,是用来控制网页行为的,它能使网页可交互。
2.JavaScript和Java是两种完全不同的语言,不论是概念还是设计,但是基本语法类似。
3.JavaScript在1995年由Brendan发明,并于1997年成为ECMA标准。
4.ECMAScript 6 是最新的JavaScript版本。

JS的引入方式**:

  • 内部脚本:将JS代码定义在HTML页面中。

                1JavaScript代码必须位于<script></script>标签中。
                2.在HTML文档中,可以在任何位置,放置任意数量的<script>标签。
                3.一般会把脚本置于<body>元素的底部,可以改善显示速度。
                <head>
                     <script>
                            alert("检测到页面跳转,已自动拒绝!");
                    </script> -->
                </head>
            外部脚本:将JS代码定义在外部JS文件中,然后引入到HTML页面中。
                1.外部JS文件中,只包含js代码,不包含<script>标签。
                2.<script>标签不能自闭合。
                alert("检测到页面跳转,已自动拒绝!");
                <body>
                     <script src="JS/demo.js"></script>
                </body>
    

js的基础语法**:

  • 1.区分大小写。

  • 2.结尾的;可以写可以不写。

  • 3.注释:

    • 单行注释://注释内容

    • 多行注释:/注释内容/

  • 4.大括号表示代码块。

输出语句

  • 1.使用window.alert()写入警告框.

  • 2.使用document.write()写入HTML输出。

  • 3.使用console.iog()写入浏览器控制台。

js变量:

  • 1.JavaScript中使用var来声名变量。

  • 2.JavaScript是一门弱类型语言,变量可以存放不同类型的值。

  • 变量名需要遵循如下规则:

    • 组成字符可以是任何字母,数字,下划线,或美元符。

    • *数字不能开头

    • 建议使用驼峰命名
      特点:
      1作用域较大,为全局变量。
      { var a = 1; } alert(a);

      2.可以重复定义。
      

      { var s = 1 ; var s = 2; //最终结果为2。后面定义的会将前面的覆盖。 }

注意事项:

  • 1.ECMAScript 6 新增了 let 关键字来定义变量,他的用法类似与var,但是所声名的变量,只在 let 关键字所在的代码块中有效,且不能重复定义。

  • 2.ECMAScript 6 新增了 const 关键字(常量),用来声明一个只读的常量。一旦声名,常量的值就不能改变。

数据类型,运算符,流程控制语句
数据类型:JavaScript分为原始类型引用类型
原始类型

  • number:数字(整数,小数,NaN(Not a Number))

  • string:字符串,单双引皆可

  • boolean:布尔,true,false

  • null:对象为空

  • undefined:当声名的变量为初始化时,该变量的默认值是 undefined
    使用typeof运算符可以获取数据类型:
    var a =12; alert(typeof a); alert(typeof null);//object

运算符:

  • 1.算术运算符:+ - * / % ++ –

  • 2.赋值运算符:=,+=,-=,*=,/=,%=

  • 比较运算符:> , < , >= , <= , != , == , ===
    注意:==会进行类型转换,===不会进行类型转换

       ` var a = 10;
        alert(a == "10");//true
        alert(a === "10");//false
        alert(a === 10);//true`
    
  • 4.逻辑运算符:&&,||,!

  • 5.三元运算符:条件表达式?true-(下划线)value:false-(下划线)value

类型转换**:

将字符串类型转换成数字:
*将字符串字面值转换为数字。如果字面值不是数字,则转换为null。

alert(parseInt("12"));//12 alert(parseInt("123A34"))//123 alert(parseInt("A12"))//NaN代表不是一个数字

其他类型转换为boolean:

  • *Number: 0 和 NaN为false,其他均转换为true

  • *String:空字符串为false,其他均转为true

  • *Null 和 undefined:均转换为false

流程控制语句与Java类型类似(不在显示)

js函数

函数(方法)是被设计为执行特定任务的代码块。
定义

JavaScript中函数使用function关键字进行定义,

语法
方式1: function functionName(参数1,参数2){ //需要执行的代码 } 方式2: var functionName = function(参数1,参数2) { //需要执行的代码 }

注意:

  • *形式参数不需要类型,因为JavaScript是弱类型语言

  • *返回值也不需要定义类型,可以在函数内部直接使用return返回即可
    调用:函数名称(实际参数列表)

js对象

  • Arrary(数组)

  • String(字符串)

  • JSON

  • BOM(浏览器)

  • DOM(文档)
    数据显示在浏览器的控制台上。
    Array:
    JavaScript中Array对象用于定义数组
    定义:
    ` var 变量名 = new Array(元素列表) var arr = new Array(1,2,3,4);

    var 变量名 = [元素列表];                var arr = [1,2,3,4];
    

    访问:

    arr[索引] = 值;                              arr[10] = “hello”;`
    

    注意:
    js中的数组类似与Java集合,长度可变,类型可变。

Array对象
常用属性:
length:数组长度 arr.length
常用方法:

  • fareach:遍历数组中的每个有值元素,并且调用一次传入的函数

  • push():将新元素添加到数组的末尾,并返回新的长度

  • splice():从数组中删除元素
    `例:
    var arr = [1,2,3,4];
    arr.forEach(function (e){ //e代表每次遍历的有值元素

               console.log(e);
       })`
    

esc6: 箭头函数:(...参数)=> (...) //简化函数的定义 arr.forEach((e) => { console.log(e); })

//添加元素 arr.push(12,41,45);

//删除元素splice(开始索引,删除元素个数) arr.splice(2,2);

String对象
String字符串对象创建方式有两种:
var 变量名 = new String("...");//方式1 var str = new String("Hello String"); var 变量名 = "...";//方式2 var str = "Hello String"; var str = 'Hello String';
属性:

length:字符串长度

方法:

  • chatAt():返回在指定位置的字符

  • indexOf:检查字符串

  • trim():去掉字符串两边的空格

  • substring():提取字符串中两个指定索引号之间的字符。字符串的截取 substring()

JavaScript自定义对象
var 对象名 = {
属性名1:属性值1,
属性名2:属性值2,
属性名3:属性值3,
函数名称:function(形参列表){}
};

例: var user = { name:"Tom", age:20, gender:"male", eat: function(){ alert("用膳~"); } };

注意:eat:faction(){alert(“吃饭!”);}可以换为: eat(){alert(“吃饭!”)}

调用格式:

  • 对象名.属性; console.log(user.name);

  • 对象名.函数名(); user.eat();

JSON

json:

概念:

JavaScript对象标记法。
JSON是通过JavaScript对象标记法书写的文本。
由于其语法简单,层次结构鲜明,现在多用于作为数据的载体,在网络中进行数据传输。

//普通的对象 { name:"Tom",**** age:20, gender:"male" };

//JSON对象 { "name" : "Tom", "age":20, "gender":"male" }

JSON基本语法
定义:
var 变量名 = '{"key1":value1,"key2":value2}';

实例:
var userStr ='{"name":"Jerry","age":18,“addr":[“北京”,“上海”,"西安"]}';

JSON字符串转换为JS对象 :
var jsobject = JSON.parse(userstr);

JS对象转为JSON字符串 :
var jsonstr =JSON.stringify(jsobject);

BOM
概念:

Browser 0bjectModel 浏览器对象模型,允许javaScript与浏览器对话,JavaScript将浏览器的各个组成部分封装为对象。
组成:

  • window:浏览器窗口对象

  • Navigator:浏览器对象

  • Screen:屏幕对象

  • History:历史记录对象

  • Location:地址栏对象

Window
介绍:

浏览器窗口对象。
获取:

直接使用window,其中 window.可以省略

。window.alert("Hello window"); alert("Hello Window");
属性:

  • history:对 History 对象的只读引用。请参阅 History 对象。

  • location:用于窗口或框架的 Location 对象。请参阅 Location 对象。

  • navigator:对 Navigator 对象的只读引用。请参阅 Navigator 对象。
    方法:

  • alert():显示带有一段消息和一个确认按钮的警告框。

  • confirm():显示带有一段消息以及确认按钮和取消按钮的对话框。

  • setlnterval():按照指定的周期(以毫秒计)来调用函数或计算表达式。(多次执行)

  • setTimeout():在指定的毫秒数后调用函数或计算表达式。(只执行一次)

Loation
介绍:

地址栏对象。
获取:

使用 window.location 获取,其中 window.可以省略。
window.location.属性; location.属性;
属性:

href:设置或返回完整的URL。 location.href="https://www.itcast.cn";

DOM
概念:

文档对象模型。
将标记语言的各个组成部分封装为对应的对象

  • Document:整个文档对象

  • Element:元素对象

  • Attribute:属性对象

  • Text:文本对象

  • Comment:注释对象

JavaScript通过DOM,就能够对HTML进行操作:

  • 1.改变HTML元素的内容

  • 2.改变HTML元素的样式

  • 3.对HTML DOM事件做出反应

  • 4.添加和删除HTML元素

DOM时w3c的标准,定义了访问HTML和xml文档的标准,分为3个不同的部分:

  • 1.Core DOM - 所有文档类型的标准模型

    • Document:整个文档对象

    • Element:元素对象

    • Attribute:属性对象

    • Text:文本对象

    • Comment:注释对象

  • 2.XML DOM-XML 文档的标准模型(core子集)

  • 3.HTML DOM - HTML文档的标准模型(core的扩充)

    image:
    Button:<input type="button">
    

DOM

  • HTML中Element对象可以通过Document对象获取,而Document对象是通过window对象获取的。

  • Document对象中通过了获取Element元素对象的函数:

    • 1根据id属性值获取,返回单个Element对象
      var h1 = document.getElementById('h1');

    • 2根据标签名称获取,返回Element对象数组
      var divs = document.getElementsByTagName('div');

    • 3根据name属性获取,返回Element对象数组
      var hobbys = document.getElementsByName('hobby');

    • 4根据class属性获取,返回Element对象数组
      var class = document.getElementByClassName('cls');

例:
请添加图片描述

Dom练习:

在这里插入图片描述

JS事件监听:

事件:

      HTML事件是发生在html元素上的“事情”。比如:
  • 按钮被点击

  • 鼠标移动到元素上

  • 按下键盘按键

事件监听:

        JavaScript可以在事件被监测到时***执行代码***。

事件绑定:

方式一:通过HTML标签中的事件属性进行绑定。

在这里插入图片描述

方式二:通过DOM元素属性绑定。

在这里插入图片描述

常见事件:

在这里插入图片描述

常见事件的使用:

在这里插入图片描述

在这里插入图片描述

DOM事件绑定案例:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

前端框架: Vue

定义:

  • vue是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。

  • 基于MVVM思想,实现数据的双向绑定,将程序的关注点放在数据上。

  • 可以免除原生的js的dom操作,从而简化开发,提高开发效率。

  • 官网:https://v2.cn.vuejs.org/

框架:

是一个半成品软件,是一套可以重用的,通用的、软件基础代码模型,基于框架进行开发,更加快捷,更加高效。

Vue快速入门

  • 新建HTML页面,引入Vue.js文件。

在这里插入图片描述

  • 在js代码区域,创建VUE核心,定义数据模型。

在这里插入图片描述

el:

vue需要控制的区域。“#app”相当于css的选择器。

data:

** 定义的数据模型。key:message**

  • 编写视图。

在这里插入图片描述

v-model:绑定数据模型message,message中的数据模型会在输入框中展示出来,因为v-model的双向绑定特性。

例:

在这里插入图片描述

插值表达式:

在这里插入图片描述

Vue的常用指令

指令:

  • HTML标签上带有 v- 前缀的特殊属性,不同指令具有不同含义。例如: v-lf 、 v-for

  • 常用指令

在这里插入图片描述

v-bind:

在这里插入图片描述

v-model:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:
  • 通过v-bind 或者 v-model 绑定的变量,必须在数据模型中声名。

v-on:

在这里插入图片描述

在这里插入图片描述

条件渲染指令:
  • v-if

在这里插入图片描述

在这里插入图片描述

  • v-show

在这里插入图片描述

v-for

addr in addrs add:遍历出来的元素名(随意起名) addrs:遍历的数组

在这里插入图片描述

如果需要遍历的索引:

addr:遍历的数组 index:索引(从0开始)

在这里插入图片描述

在这里插入图片描述

vue遍历数组案例:

在这里插入图片描述

在这里插入图片描述

结果展示:

在这里插入图片描述

vue生命周期

  • 生命周期:值一个对象从创建到销毁的过程。

  • 生命周期的八个阶段:每触发一个生命周期事件,会自动执行一个生命周期方法(钩子)。

在这里插入图片描述

关键作用:

一旦触发生mounted命周期事件,会自动执行一个生命周期方法(钩子方法),一般在mounted方法中发送请求到服务端,来获取服务端的数据。

在这里插入图片描述

mounted:

挂载完成,Vue初始化成功,HTML页面渲染成功。(发送请求到服务端,加载数据)

Ajax介绍

Ajax

  • 概念:

      Asynchronous Javascript And XML,异步的JavaScript和XML。
    
  • 作用:

              数据交互:通过Ajax可以给服务器发送请求,并获取服务器响应的数据。
    
               异步交互:可以在不重新加载整个页面的情况下,与服务器交互数据并更新部分网页,如:搜索联想、用户名是否可以校验等等。                
    

在这里插入图片描述

同步和异步

在这里插入图片描述

在这里插入图片描述

原生Ajax

  • 准备数据地址: http://yapi.smart-xwork.cn/mock/169327/emp/list

  • 创建XMLHttpRequest对象: 用于和服务器交换数据。

  • 向服务器发送请求

  • 获取服务器响应数据

在这里插入图片描述

Axios

介绍:

    Axios 对原生的Ajax进行了封装,简化书写,快速开发。

官网:

    https://www.axios-http.cn/

1.引入Axios的js文件

在这里插入图片描述

2.使用Axios发送请求,并获取响应结果

在这里插入图片描述

Axios

在这里插入图片描述

发送GET请求

在这里插入图片描述

发送POST请求

在这里插入图片描述

在这里插入图片描述

基于vue和axios的案例

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

前后端分离开发

当前最主流的开发模式:

        前后端分离开发

在这里插入图片描述

YAPI

介绍:

    YAPI:Yapi是高效、易用、功能强大的api管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。

地址:

    http://yapi.smart-xwork.cn/
  • 添加项目

  • 添加分类

  • 添加接口

前端工程化

模块化(js,css)、组件化(UI结构)、规范化(目录结构,编码,接口)、自动化(构建,部署,测试)

环境准备

介绍:

    Vue-cli是Vue官方提供的一个脚手架,用于快速生成一个Vue项目。vite

Vue-cli提供以下功能:

  • 统一的目录结构

  • 本地测试

  • 热部署

  • 单元测试

  • 集成打包上线

依赖环境:

        Nodejs
  • 安装Nodejs

在这里插入图片描述

注意:

    E:\develop\Nodejs是nodejs的安装路径,按自己安装的路径来。

检查配置:

在这里插入图片描述

vue-cli的安装

切换npm的淘宝镜像:

在这里插入图片描述

vue项目的创建

  • 命令行:

在这里插入图片描述

  • 图形化界面:

在这里插入图片描述

vue项目-目录结构

  • 基于vue脚手架创建出来的工程,有标准的目录结构,如下:

在这里插入图片描述

node_modules:整个项目的依赖包

public:存放项目的静态文件

src:存放项目的源代码

{}package.json:模块基本信息,项目开发所需模块,版本信息

vue.config.js:保存vue配置的文件,如 “代理,端口的配置等”

在这里插入图片描述

assets:静态资源

components:可重用的组件

route:路由配置

views:视图组件(页面)

App.vue:入口页面(根组件)

main.js:入口js文件

vue项目-启动

  • vscode启动

在这里插入图片描述

在这里插入图片描述

  • 命令行窗口启动

在项目文件地址输入cmd

在这里插入图片描述

输入 npm run serve

在这里插入图片描述

vue提供热部署功能:页面会自动刷新

vue项目-配置端口

在这里插入图片描述

ctrl c + y :停止项目

在这里插入图片描述

端口被改为7000

在这里插入图片描述

Element

  • element是饿了么团队研发的,一套为开发者设计师和产品经理准备的基于Vue2.0的桌面端组件库。

  • 组件:组成网页的部件,例如:超链接,按钮,图片,表格,表单,分页条等。

  • 官网:https://element.eleme.cn/#/zh-CNLister

快读入门

  • 安装ElementUI组件库(在当前工程目录下),在命令行执行指令。

在这里插入图片描述

在node_model包中有element-ui就代表已经安装成功。

  • 引入Element UI组件库。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 更改根组件App.vue,将ElementVue.vue导入根组件中

在这里插入图片描述

展示效果:

在这里插入图片描述

  • 访问官网,复制组件代码,调整。

在这里插入图片描述

Element常见组件

常见组件-table

组件都要放于中

  • 表格:用于展示多条结构类似的数据,可对数据进行排序,筛选,对比或其他自定义操作。

上面已经完成了将ElementVue.vue的引入,便可以开始编写vue样式。

所有的element样式都可以在官网查找。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

展示效果:

在这里插入图片描述

常见组件-分页

  • pagination分页:

                                  当数据量过多时,使用分页分解数据。
    

在这里插入图片描述

在这里插入图片描述

展示效果:

在这里插入图片描述

较为重要的两个属性:handleSizeChange,handleCurrentChange的使用。

在这里插入图片描述

可以使用这两个属性将页码变化信息通过弹窗的形式展示。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

常见组件-对话框

  • Dialog对话框:在保留当前页面状态的情况下,告知用户并承载相关操作。

在这里插入图片描述

展示效果:

在这里插入图片描述

常见组件-表单

  • from表单:由输入框、选择器、单选框、多选框等控件组成,用来收集、检验、提交数据。

将表单展示在Dialog中:

在这里插入图片描述

在这里插入图片描述

怎么采集form表单中每一个表单项的内容:

通过v-model来进行数据绑定,将各个表单中的数据绑定到一个对象中。

完整的Vue样例

根据页面原型完成员工管理页面开发,并通过Axios完成数据异步加载。

  • 创建页面,完成整体布局。

  • 列表数据的异步加载,并渲染展示。

在这里插入图片描述

在这里插入图片描述

  • 布局中各个组件的实现。

在这里插入图片描述

在这里插入图片描述

  • 列表数据的异步加载,并渲染展示

vue项目中使用Axios:

  • 在项目目录下安装axios:npm install axios;

  • 需要使用axios时:导入axios:import axios from ‘axios’;

在这里插入图片描述

异步发送请求:

在这里插入图片描述

Vue路由

前端路由:

            url中的hash(#号)与组件之间的对应关系。

Vue Rooter

  • 简介:Vue的官方路由。

  • 组成:

    • VueRooter:路由器类,根基路由请求在路由视图中动态渲染选择的组件。

    • :请求连接组件,浏览器会解析为

    • :动态视图组件,用来渲染展示路由路径对应的组件。

通过link和view来绑定浏览器展示的动态视图。例:点击不同的按键,可以在同页面一侧展示不同按键对应的视图。

在index.js中添加路由

在这里插入图片描述

打包部署

前端vue的最后一步:打包部署。

在这里插入图片描述

dist就是打包好的项目文件。

在这里插入图片描述

部署

Nginx

  • 介绍:Nginx时是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP)代理服务器。其特点是占用内存少,并发能力强。

  • 官网:http://nginx.org/

在这里插入图片描述

  • 部署:

                  将打包好的dist目录下的文件,复制到nginx安装目录的html目录下。
    

启动Nginx:

            注意:Nginx默认占用80端口号。如果80号端口被占用,可以在nginx.conf中修改端口号。(netstat -ano|findStr 80)

在这里插入图片描述

前端Vue结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前进别停留

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值