JavaWeb——前端之JSVue

news2025/1/23 7:15:13

接上篇笔记

4. JavaScript

概念

  • 跨平台、面向对象的脚本语言,使网页可交互
  • 与Java语法类似,但是不需要变异,直接由浏览器解析
  • 1995年Brendan Eich发明,1997年成为ECMA标准(ECMA制定了标准化的脚本程序设计语言ECMAScript,JavaScript是遵守ECMAScript标准的)
  • JS中可以识别HTML标签

1)引入方式

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

  • JS代码位于<script></script>标签之间
  • 在HTML文档中,可以在任意地方,放任意数量的<script>
  • 一般会把脚本置于<body>元素底部,可以改善显示速度

外部脚本:将JS代码定义在外部JS文件中,然后引入

  • 外部文件中就只有JS代码了,不包含<script>标签
  • <script>标签不能自闭合

2)基础语法

书写语法

  • 区分大小写
  • 结尾分号可有可无,建议有
  • 注释与Java同
  • 大括号表示代码块

输出语句

  • window.alert(“小鱼来咯”)——写入警告框
  • document.write(“小鱼又来咯”)——写入HTML,在浏览器中展示
  • console.log(“小鱼双来咯”)——写入浏览器控制台

变量

  • JavaScript中用var关键字来声明变量,可以重复使用
  • 弱类型语言,可以存放不同类型的值
  • 变量名需要遵循的规则
    • 组成字符:字母、数字、下划线、美元符号
    • 数字不能开头
    • 建议使用驼峰命名
    • 作用域是全局
  • 注:ECMAScript 6新增了let关键字来定义变量——局部变量,不允许重复声明;新增了const关键字,用来声明一个只读的常量,一旦声明,常量的值就不能改变
  • 有原始类型和引用类型共5种(number、string、boolean、null(返回Object,null可以解释为对象的占位符)、undefined(声明的变量未初始化时,变量的默认值)),可以使用alert(typeof 变量名)获取变量的类型

运算符

  • 与Java同
  • 特别
    • ==会进行类型转换
    • ===不会进行类型转换

类型转换

  • 字符串转int:parseInt(“字符串”);碰到第一个不是数字的就会停止,如果全都不是数字,返回NAN
  • 其他类型转换为boolean:
    • number:0和NaN为false,其余为true
    • string:空字符串为false,其余为true
    • Null和undefined:均转为false

流程控制语句与Java同

3)函数

定义: function关键字

function functionName (参数1,参数2) {

​ // 要执行的代码

}

var add = functionName(参数) {

}

注意:

JS是弱类型的,形参不需要指定类型,也不需要指定返回值的类型

可以传递任意个数的参数,但是函数只会用它自己需要的

4)对象

基本对象:

①Array

  • 定义:var 变量名 = new Array(元素列表); / var 变量名 = [元素列表];
  • 访问:变量名[索引] = 值;
  • 注意:长度可变;类型可变
  • 属性:length—— 数量
  • 方法:forEach()——遍历数组中有值的元素
  • ​ push()—— 添加元素到数组的尾部
  • ​ splice()——删除元素

②String

  • 定义:var 变量名 = new String(“…”); var 变量名 = “…”;
  • 属性:length——长度
  • 方法:charAt()——返回在指定位置的字符
  • ​ indexOf()——检索某个子字符串的位置
  • ​ trim()——去除字符串两边的空格
  • ​ substring()——提取字符串两个指定索引号之间的字符,左闭右开

③JSON

JS中自定义对象

  • 定义:

var 对象名 = {

​ 属性名1:属性值1,

​ …

​ 函数名:function(形参列表) {

​ 要执行的方法

​ }

​ 函数名(形参列表) {

​ 要执行的方法

​ }

};

  • 调用:
    • 对象名.属性名;
    • 对象名.函数名();

JSON(JavaScript Object Notation, JavaScript对象标记法)——JS自定义对象中将属性名也用双引号引起

  • 定义:
    • var 变量名 = ‘{“key1”: value1, “key2”: value2}’;
  • 特点:语法简单,层次结构鲜明
  • 作用:作为数据载体,在网络中进行数据传输
  • JSON字符串转为JS对象
    • var jsObject = JSON.parse(userStr);
  • JS对象转为JSON字符串
    • var jsonStr = JSON.stringify(jsObject);

浏览器对象:

BOM(Browser Object Model, 浏览器对象模型),允许JavaScript与浏览器对话,将浏览器的各个组成部分封装为对象

组成:

  • Window:浏览器窗口对象
  • Navigator:浏览器对象(内核等)
  • Screen:屏幕对象
  • History:历史记录对象
  • Location:地址栏对象

文档对象:

DOM(Document Object Model, 文档对象模型)

作用:将标记语言的各个组成部分封装为对应的对象——>DOM树

  • Document:整个文档对象
  • Element:元素对象
  • Attribute:属性对象
  • Text:文本对象
  • Comment:注释对象

DOM+事件监听机制来控制网页行为

  • 改变HTML元素的内容
  • 改变HTML元素的样式
  • 对HTML DOM事件作出反应
  • 添加和删除HTML元素

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5)事件监听

  • 事件:发生在HTML元素上的事情(按钮被点击,鼠标移动到元素上,按下键盘按键)
  • 事件监听:JS可以在事件被侦测到时执行代码
  • 事件绑定:
    • 方式一:通过HTML标签中的事件属性进行绑定
    • 方式二:通过DOM元素属性绑定
  • 常见事件:
  • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5. Vue

概念: 一套前端框架,免除原生JS中的DOM操作。框架是一个半成品软件,是可以重用、通用的软件基础代码模型,就是不用从0开始了。

思想: 基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上。

在这里插入图片描述

引入: <script src=“js/vue.js”> </script>

数据模型: 在JS代码区域,创建Vue核心对象,定义数据模型

<script>

​ new Vue ({

​ el :“#app”,

​ data:{

​ message:“Hello Vue!”

​ },

​ methods:{

​ // 具体的函数实现

​ }

​ })

</script>

视图模型:在body里面写的

<div id=“app”>

​ <input type=“text” v-model=“message”>

​ {{ message }} // 插值模型,里面的内容可以是变量、三元运算符、函数调用、算数运算

</div>

常用指令: HTML标签上带有v-前缀的特殊属性,不同指令有不同的含义

在这里插入图片描述

v-bind和v-model绑定的变量,必须要在数据模型中声明

Vue的生命周期: 指一个对象从创建到销毁的整个过程。每出发一个生命周期事件,会自动执行一个生命周期方法(钩子)

在这里插入图片描述

  • beforeCreate:Vue实例创建初期
  • created:Vue实例初始化
  • beforeMount:创建 vm.$el,并用其替换el之前
  • mounted:创建 vm.$el,并用其替换el之后——发送异步请求到后端获取数据
  • 挂载完毕
  • beforeUpdate:当data被修改时
  • updated:虚拟DOM重新渲染并应用更新之后
  • beforeDestory:当调用vm.$destroy()函数时
  • 解除绑定,销毁子组件以及事件监听器
  • destroyed:销毁完毕

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1343794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql5.7主从数据库同步失败(日记文件错误)解决记录

记录一次Mysql主从数据库同步失败(日记文件错误)解决记录 查看同步状态&#xff1a; 具体错误&#xff1a; 检查mysql数据库日记 2021-06-10T03:45:43.522398Z 1 [ERROR] Error reading packet from server for channel : event read from binlog did not pass crc check; the…

NFC与ZigBee技术在智慧农业物联网监测系统中的应用

近年来&#xff0c;我国农业物联网技术飞速发展&#xff0c;基于物联网技术的智能农业监测系统有望得到较大规模的推广应用。但传统的物联网农业监测系统其网络结构层次单一&#xff0c;多采用基于有线或无线结构的节点-上位机数据采集模式&#xff0c;节点数据访问模式缺乏灵活…

音频、视频插座

音频、视频插座 常用电子元器件类型 DC电源插座 文章目录 音频、视频插座前言一、音频、视频插座二、DC电源插座1. 镀铜锡DC插座2. 镀镍DC插座总结前言 音频和视频插座在设计上具有特定的接口类型和标准,以确保兼容性和信号传输的质量。在选择插座时,需要根据设备的接口类…

云计算:OpenStack 配置云主机实例的存储挂载并实现外网互通

目录 一、实验 1. 环境 2.配置存储挂载 3.云主机实例连接外部网络&#xff08;SNAT&#xff09; 4.外部网络连接云主机实例&#xff08;DNAT&#xff09; 二、问题 1.云主机 ping 不通外部网络 2.nova list 查看云主机列表报错 3.nova list 与 virsh list --all有何区…

【音视频 ffmpeg 学习】 RTMP推流 mp4文件

1.RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议。 2.RTMP协议中基本的数据单元称为消息&#xff08;Message&#xff09;。 3.当RTMP协议在互联网中传输数据的时候&#xff0c;消息会被拆分成更小的单元&#xff0c;称为消息块&#xff08;Chunk&#xff…

docker-compose Install TeamCity

前言 TeamCity 是一个通用的 CI/CD 软件平台,可实现灵活的工作流程、协作和开发实践。允许在您的 DevOps 流程中成功实现持续集成、持续交付和持续部署。 系统支持 docker download TeamCity TeamCity 文档参考项目离线包百度网盘获取

Spring Boot学习随笔- 集成MyBatis-Plus,第一个MP程序(环境搭建、@TableName、@TableId、@TableField示例)

学习视频&#xff1a;【编程不良人】Mybatis-Plus整合SpringBoot实战教程,提高的你开发效率,后端人员必备! 引言 MyBatis-Plus是一个基于MyBatis的增强工具&#xff0c;旨在简化开发&#xff0c;提高效率。它扩展了MyBatis的功能&#xff0c;提供了许多实用的特性&#xff0c;…

Qt/C++音视频开发62-电子放大/按下选择区域放大显示/任意选取区域放大

一、前言 电子放大这个功能思考了很久&#xff0c;也是一直拖到近期才静下心来完整这个小功能&#xff0c;这个功能的前提&#xff0c;主要得益于之前把滤镜打通了&#xff0c;玩出花样来了&#xff0c;只要传入对应的滤镜字符串&#xff0c;就可以实现各种各样的效果&#xf…

学习笔记:R语言基础

文章目录 一、R语言简介二、选择R的原因三、R基本数据对象&#xff08;一&#xff09;向量&#xff08;二&#xff09;矩阵&#xff08;三&#xff09;数组&#xff08;四&#xff09;因子&#xff08;五&#xff09;列表&#xff08;六&#xff09;数据框&#xff08;七&#…

LLM之RAG实战(十一)| 使用Mistral-7B和Langchain搭建基于PDF文件的聊天机器人

在本文中&#xff0c;使用LangChain、HuggingFaceEmbeddings和HuggingFace的Mistral-7B LLM创建一个简单的Python程序&#xff0c;可以从任何pdf文件中回答问题。 一、LangChain简介 LangChain是一个在语言模型之上开发上下文感知应用程序的框架。LangChain使用带prompt和few-…

数据结构入门到入土——ArrayList与顺序表

目录 一&#xff0c;线性表 二&#xff0c;顺序表 1.接口实现 三&#xff0c;ArrayList简介 四&#xff0c;ArrayList使用 1.ArrayList的构造 2.ArrayList常见操作 3.ArrayList的遍历 4.ArrayList的扩容机制 五&#xff0c;ArrayLisit的具体使用 杨辉三角 一&#x…

SONiC和ONL所依赖的Debian版本说明

Debian 的最新几个版本 下一代 Debian 正式发行版的代号为 trixie — 测试&#xff08;testing&#xff09;版 Debian 12 (bookworm) — 当前的稳定&#xff08;stable&#xff09;版 Debian 11 (bullseye) — 当前的旧的稳定&#xff08;oldstable&#xff09;版 Debian 10&a…

CentOS7 系统安装

系统下载 官方下载 清华源下载 安装流程 1. 选择安装系统 2. 选择安装语言 3. 设置网络链接 4. 设置静态IP ![img](https://img-blog.csdnimg.cn/img_convert/53bfedd54b838f95bd8bcb2efa232e23.png)设置时区 5. 磁盘设置&#xff0c;无特殊需求默认就好 6. 安装模式选择 7…

jwt 介绍

目录 1&#xff0c;jwt 的出现问题 2&#xff0c;jwt 介绍3&#xff0c;jwt 令牌的组成3.1&#xff0c;header3.2&#xff0c;payload3.3&#xff0c;signature 4&#xff0c;验证5&#xff0c;总结 身份验证相关内容&#xff1a; 浏览器 cookie 的原理&#xff08;详&#xff…

计算机视觉技术-锚框

目标检测算法通常会在输入图像中采样大量的区域&#xff0c;然后判断这些区域中是否包含我们感兴趣的目标&#xff0c;并调整区域边界从而更准确地预测目标的真实边界框&#xff08;ground-truth bounding box&#xff09;。 不同的模型使用的区域采样方法可能不同。 这里我们介…

蓝牙物联网移动硬件数据传输系统解决方案

随着传感器技术、网络技术和数据传输技术的不断发展&#xff0c;人们对智能设备的需求日渐增强,利用传感器技术可以对周围环境进行准确和全面的感知&#xff0c;获取到实时信息&#xff0c;从而在网络中进行传输和共享&#xff0c;再通过服务器对各种数据进行保存、分析和挖掘等…

Transformer(seq2seq、self-attention)学习笔记

在self-attention 基础上记录一篇Transformer学习笔记 Transformer的网络结构EncoderDecoder 模型训练与评估 Transformer的网络结构 Transformer是一种seq2seq 模型。输入一个序列&#xff0c;经过encoder、decoder输出结果也是一个序列&#xff0c;输出序列的长度由模型决定…

乡村北斗预警预报应急通信调度方案

根据《中共中央国务院关于切实加强农业基础建设进一步促进农业发展农民增收的若干意见》&#xff08;中发[2008]1号&#xff09;等文件要求&#xff0c;要健全农业气象服务体系和农村气象灾害防御体系&#xff0c;充分发挥气象服务“三农”的重要作用。 随着中国北斗导航卫星系…

Spark应用程序的结构与驱动程序

Apache Spark是一个强大的分布式计算框架&#xff0c;用于处理大规模数据。了解Spark应用程序的结构和驱动程序是构建高效应用的关键。本文将深入探讨Spark应用程序的组成部分&#xff0c;以及如何编写一个Spark驱动程序来处理数据和执行计算。 Spark应用程序的结构 Spark应用…

CDN:内容分发的高速公路(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…