JavaWeb——前端之JSVue

接上篇笔记

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.mzph.cn/news/584161.shtml

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

相关文章

Unity Shader-真实下雨路面

Unity Shader-真实下雨路面 简介素材1.准备插件Amplify Shader Editor&#xff08;这里我使用的是1.6.4最新版&#xff09;2.贴纸和切图d 一、创建一个Shader Surface&#xff0c;实现气泡播放效果二、叠加一次气泡播放效果&#xff0c;使其看起来更多&#xff0c;更无序三、小…

新火种AI|AI正在让汽车成为“消费电子产品”

作者&#xff1a;一号 编辑&#xff1a;小迪 AI正在让汽车产品消费电子化 12月28日&#xff0c;铺垫许久的小米汽车首款产品——小米SU7正式在北京亮相。命里注定要造“电车”的雷军&#xff0c;在台上重磅发布了小米的五大自研核心技术。在车型设计、新能源技术以及智能科技…

手把手带你入门本地AI绘画(Stable Diffusion)

AIGC现如今可谓是如日中天,AI绘画算是其中最火的其中之一了。现在的AI绘图工具也是百家争鸣,不管是网页端,APP端,还是小程序端,都能看到各种各样的AI绘图工具,他们多是需要你发送关键词或绘图命令到他们的服务器,然后由服务器渲染完成之后返图给你,所以一定会占用他们的…

概率论相关题型

文章目录 概率论的基本概念放杯子问题条件概率与重要公式的结合独立的运用 随机变量以及分布离散随机变量的分布函数特点连续随机变量的分布函数在某一点的值为0正态分布标准化随机变量函数的分布 多维随机变量以及分布条件概率max 与 min 函数的相关计算二维随机变量二维随机变…

4-链表-合并两个有序链表

这是链表的第4题&#xff0c;来个简单算法玩玩。力扣链接。 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff…

JS 嵌套循环之退出顶层循环

我们常常写循环的时候&#xff0c;可能会遇到嵌套循环&#xff0c;如果出现退出循环&#xff0c;一层还好&#xff0c;多层循环就费劲了&#xff0c;传统做法是加 flag&#xff0c;如下&#xff1a; for (let i 0; i < 10; i) {let flag falsefor (let j 0; j < 5; j…

【Angular 】Angular 模板中基于角色的访问控制

您是否在Angular模板中实现角色库访问控制&#xff1f;一种方法是通过*ngIf&#xff0c;但我不会选择该路径&#xff0c;因为它将在Angular模板中包含自定义函数&#xff0c;并且很难维护。正确的方法是使用Angular结构指令&#x1f680;. 什么是RBAC&#xff1f; 基于角色的…

自然语言处理(第16课 机器翻译4、5/5)

一、学习目标 1.学习各种粒度的系统融合方法 2.学习两类译文评估标准 3.学习语音翻译和文本翻译的不同 4.学习语音翻译实现方法 二、系统融合 以一个最简单的例子来说明系统融合&#xff0c;就是相当于用多个翻译引擎得到不同的翻译结果&#xff0c;然后选择其中最好的作为…

【网络安全 | XCTF】2017_Dating_in_Singapore

正文 题目描述&#xff1a; 01081522291516170310172431-050607132027262728-0102030209162330-02091623020310090910172423-02010814222930-0605041118252627-0203040310172431-0102030108152229151617-04050604111825181920-0108152229303124171003-261912052028211407-0405…

Linux开发工具——gdb篇

Linux下调试工具——gdb 文章目录 makefile自动化构建工具 gdb背景 gdb的使用 常用命令 总结 前言&#xff1a; 编写代码我们使用vim&#xff0c;编译代码我们使用gcc/g&#xff0c;但是我们&#xff0c;不能保证代码没问题&#xff0c;所以调试是必不可少的。与gcc/vim一样&…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的帧率的技术背景Baumer工业相机的帧率获取方式CameraExplorer如何查看相机帧率信息在NEOAPI SDK里通过函数获取相机帧率&#xff08;C&#xff09; …

从方程到预测:数学在深度学习中的作用

图片来源 一、说明 深度学习通常被认为是人工智能的巅峰之作&#xff0c;它的成功很大程度上归功于数学&#xff0c;尤其是线性代数和微积分。本文将探讨深度学习与数学之间的深刻联系&#xff0c;阐明为什么数学概念是该领域的核心。 二、数学框架 从本质上讲&#xff0c;深度…

水经微图IOS版即将发布!

我们从上周开始&#xff0c;已经在着手提交产品到苹果商店等相关工作&#xff0c;但又恰逢“圣诞节”&#xff0c;据说这会导致延长审核周期。 正所谓行百里者半九十&#xff0c;我们现在只需要耐心等待审核通过&#xff0c;到时大家就可以在苹果商店中下载安装了。 IOS版功能…

echarts半圆进度条半圆饼图

drawmonthproduce(){this.monthproduce echarts.init(document.getElementById(monthproduce));var data 60; //数值大小var max 100; //满刻度大小this.monthproduce.setOption({title: [{text: data %, left: 50%,top: 70%,textAlign: center,textStyle: {// fontWeight…

C语言rand函数,srand函数,time函数实现随机数,及猜数字小游戏

怀心之所爱&#xff0c;奔赴山河 前言 最近在复习c的知识&#xff0c;想起之前写过一个猜数字小游戏&#xff0c;所以今天就把自己关于随机数的使用经验分享一下&#xff0c;希望对大家有帮助。 一.rand函数 1.函数的声明如下 可以看到&#xff0c;返回值是int类型&#xff…

人工智能的基础-深度学习

什么是深度学习? 深度学习是机器学习领域中一个新的研究方向&#xff0c;它被引入机器学习使其更接近于人工智能。 深度学习是机器学习领域中一个新的研究方向&#xff0c;它被引入机器学习使其更接近于最初的目标——人工智能。 深度学习是学习样本数据的内在规律和表示层次&…

优维携手深职大共建“中国高校‘双碳’技能仿真操作系统”!

优维“双碳”战略合作高校 优维科技与深圳职业技术大学碳中和技术研究院&#xff08;深职碳研院&#xff09;签署战略合作协议&#xff0c;深化产学研&#xff0c;聚力创新“双碳”发展。在“双碳”目标大背景下&#xff0c;优维科技和深职碳研院将携手共同开发中国高校“双碳…

主动红外探测器,预计到2026年将达到16 亿美元

主动红外探测器&#xff0c;也称为运动传感器&#xff0c;是一种通过发射红外辐射并检测反射来检测移动物体存在的电子设备。它们广泛用于安全系统、自动门、照明控制和其他需要运动检测的应用。近年来&#xff0c;由于对安全系统的需求不断增加以及智能家居和建筑的发展&#…

C++标准模板库(STL)

标准模板库&#xff08;STL&#xff09;是一组C模板类&#xff0c;提供常见的编程数据结构和函数&#xff0c;如列表、堆栈、数组等。它是一个容器类、算法和迭代器的库。它是一个通用库&#xff0c;因此&#xff0c;它的组件是参数化的。模板类的相关知识是使用STL的先决条件。…

使用Jenkins和单个模板部署多个Kubernetes组件

前言 在持续集成和部署中&#xff0c;我们通常需要部署多个实例或组件到Kubernetes集群中。通过Jenkins的管道脚本&#xff0c;我们可以自动化这个过程。在本文中&#xff0c;我将演示如何使用Jenkins Pipeline及单个YAML模板文件&#xff08;.tpl&#xff09;来部署多个类似的…