JavaWEB学习笔记 2024-1-10 --JavaScript

« 上一篇


文章目录

    • 3.JavaScript
      • 3.1第一个JS程序
      • 3.2JS的引入方式
      • 3.3JS中函数定义
      • 3.4函数的触发
      • 3.5查看浏览器控制台输出
      • 3.6数据类型
      • 3.7变量
      • 3.8运算符
      • 3.9流程控制语句
      • 3.10JS中的异常处理


3.JavaScript

是由网景公司发布,最开始的名字为LiveScript,之后和sun公司合作,改名为JavaScript
JavaScript简称JS,标准名为ECMAScript简称为ES
JS是面向过程基于对象的语法,运行在浏览器上的脚本语言,可以实现网页交互功能

3.1第一个JS程序

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script>alert('hello head');</script></head><body><!-- js使用script标签进行引入,script可以写在head和body中 --><script>alert('hello body');</script></body>
</html>

3.2JS的引入方式

内联式(内嵌式)使用script标签在head或者body中,在script标签中编写js代码
外联式使用js文件,通过script标签的src属性,将外联的js文件进行引入(可以引入多次)
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script src="js/js.js"></script></head><body><script src="js/js.js">// 外联式的js引入的script中,不要写任何的js代码,不会报错,但是也不会被执行alert('我是卧底');</script></body>
</html>
alert("hello 外联式");

3.3JS中函数定义

函数,面向过程语言中的最小单元,类似于java中的方法
定义语法function 函数名(形参){js代码;[return [返回值]];}
调用语法函数名(实参);形参是变长参数,实参在赋值时不用和形参一一对应,没有被赋值的形参默认为undefined
<script>// 定义函数function m1(){alert('helloworld');}// 调用函数// m1();function m2(a,b){alert(a+","+b);}m2(10,20);m2(10);//10为a赋值 b使用undefined(未定义的)进行赋值
</script>

3.4函数的触发

就是函数的调用1.直接调用的形式 使用很少2.使用html中的触发事件例如:onclick 点击事件
<head><meta charset="utf-8"><title></title><style>#div1 {width: 50px;height: 50px;background: #0cc;}</style>
</head>
<body><script>function m1(){alert('hihihi');}</script><input type="button" onclick="m1();" value="点我."><div id="div1" onclick="m1();"></div><input type="text" onblur="m1();">
</body>

3.5查看浏览器控制台输出

console.log(变长参数);将内容打印到浏览器控制台下
console.log('hello');
console.log(1,3);

3.6数据类型

原始类型number string boolean null undefined
引用类型function object使用typeof关键字可以进行类型判断
定义变量使用var关键字(var一切)
<script>var a = 10;console.log(a);console.log(typeof a);// js中可以重复的定义一个变量var a = 'hello';console.log(a);console.log(typeof a);// string可以使用'' 和 ""var a = "hello";console.log(a);console.log(typeof a);// es6中字符串定义,使用``var a = `hello`;console.log(a);console.log(typeof a);// js中指代假的不仅仅有falsevar a = false;console.log(a);console.log(typeof a);// 不会手动赋值var a = null;console.log(a);console.log(typeof a);//类型为object// 不会手动赋值var a = undefined;console.log(a);console.log(typeof a);
</script>
<script>// 函数可以以变量形式进行输出function m1(){alert('hello');}console.log(m1);console.log(typeof m1);// 函数之间可以进行传递var m2 = m1;console.log(m2);console.log(typeof m2);// m2();// 函数可以使用变量的形式进行定义var m3 = function(){alert()}console.log(m3);console.log(typeof m3);console.log('------------------');// 数组对象var arr = [1,2,3,4,5];console.log(arr);console.log(typeof arr);// 字面量对象var obj = {};console.log(obj);console.log(typeof obj);
</script>

3.7变量

js中叫var一切,所有的数据类型都是var进行定义(弱语言的特点),或者不使用var定义不使用var属于全局变量,属于window对象,会造成全局污染
js中可以使用"use strict"启用严格模式,错误的定义方式不能使用
<script>// 严格模式"use strict"a = 10;console.log(a);console.log(window.a);
</script>
es6语法中新增定义变量的方式1.const:定一个不可修改,必须被初始化的值(java中的静态常量)2.let:定义的变量不能重名
<script>const a = 10;console.log(a);/* const b;console.log(b); *//* a = 20;console.log(a); */let b = 10;console.log(b);/* let b = 10;console.log(b); */
</script>

3.8运算符

+ - * / %
++ --
> >= < <= == != 
& | !
&& ||=== 严格等先判断类型是否一致,在判断值
<script>let a = 10;let b = '10';console.log(a == b);console.log(a === b);// 非严格等console.log(a !== b);
</script>
<script>// js中为假的值:'' 0 false null undefined // 都可以在流程控制语句中使用let b = false;// 表示假console.log(false == 0);console.log(false == '');console.log(0 == '');// null 和 undefined也是假console.log(false == null);//null 和 false比较为falseconsole.log(false == undefined);//undefined 和 false比较为false// 为trueconsole.log(null == undefined);console.log(null === undefined);
</script>
<script>let a = 10;let result = a / 'abc';// NaN:not a numberconsole.log(result);// number类型的console.log(typeof result);// NaN之间的比较返回结果永远是false// falseconsole.log(NaN == NaN);console.log(NaN === NaN);// trueconsole.log(NaN != NaN);console.log(NaN !== NaN);// 同样的方式产生的NaN 比较的结果仍然为falseconsole.log(result == result);
</script>

3.9流程控制语句

if
switch
while
do...while
forfor...in循环类似java中的foreach作用:变量数组和对象
<script>// 遍历数组let arr = [1,2,3,4,5];// i是下标for(let i = 0;i<arr.length;i++){console.log(arr[i]);}// i是下标for(let i in arr){console.log(arr[i]);}// 遍历对象let obj = {name:'tom',age:23,hobby:'学习',};// i是key obj[i]是valuefor(let i in obj){console.log(i,obj[i]);}console.log(obj);
</script>

3.10JS中的异常处理

try catch finally throw
<script>function m1(age){try {if(age > 0){return age;}else{throw '年龄不合法';}}catch(e){// 输出e对象console.log(e,typeof e);return 18;}finally {// 无论怎样都会执行的代码,但是不建议写return}}console.log(m1(10));console.log(m1(-10));
</script>

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

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

相关文章

[linux] git clone一个repo,包括它的子模块submodule

How do I "git clone" a repo, including its submodules? - Stack Overflow git clone git://github.com/foo/bar.git cd bar git submodule update --init --recursive

大模型关于Lora论文集合

《Chain of LoRA:Efficient Fine-tuning of Language Models via Residual Learning》 Chain of LoRA (COLA)&#xff0c;这是一种受 Frank-Wolfe 算法启发的迭代优化框架&#xff0c;旨在弥合 LoRA 和全参数微调之间的差距&#xff0c;而不会产生额外的计算成本或内存开销。CO…

状态机和相关算法应用分析

简介 状态机&#xff08;State Machine&#xff09;在软件编程中是一个数学模型&#xff0c;可以用状态转移图表示&#xff0c;指的是&#xff1a;现态在满足某个条件时&#xff0c;进行动作&#xff08;状态转移&#xff09;&#xff0c;从而转为另一个状态&#xff08;次态&…

【c++】类和对象1

1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完 成 …

编程江湖:Python探秘之旅-----Python 实用工具和库(七)

在一个普通的工作日&#xff0c;团队聚集在一起讨论如何提升开发效率。这时&#xff0c;林克斯加入了讨论&#xff0c;他是团队的技术专家&#xff0c;对 Python 的生态系统了如指掌。 林克斯&#xff1a;&#xff08;满怀热情地&#xff09;你们知道吗&#xff0c;Python 有一…

JavaScript高级程序设计读书记录(十二):函数

函数是ECMAScript中最有意思的部分之一&#xff0c;这主要是因为函数实际上是对象。每个函数都是Function 类型的实例&#xff0c;而 Function 也有属性和方法&#xff0c;跟其他引用类型一样。因为函数是对象&#xff0c;所以函数名就是 指向函数对象的指针&#xff0c;而且不…

[linux]编译一个ko文件并运行

一、需求 有一段代码需要在运行时加载注入内核中&#xff0c;当用户层需要访问时可以提供内核态环境去运行。 二、c代码构建 // #include <errno.h> // #include <string.h> // #include <stdio.h> // #include <fcntl.h> // #include <stdlib.h…

Windows安装Rust环境(详细教程)

一、 安装mingw64(C语言环境) Rust默认使用的C语言依赖Visual Studio&#xff0c;但该工具占用空间大安装也较为麻烦&#xff0c;可以选用轻便的mingw64包。 1.1 安装地址 (1) 下载地址1-GitHub&#xff1a;Releases niXman/mingw-builds-binaries GitHub (2) 下载地址2-W…

Formnext2024法兰克福3D打印增材制造展览会现正接受报名

Formnext2024法兰克福3D打印增材制造展览会现正接受报名 Formnext法兰克福国际精密成型及 3D 打印制造展览会将于2024年11月19日至22日在法兰克福举办。 Formnext法兰克福国际精密成型及 3D 打印制造展览会在2023年迎来了32,851名专业人士和管理人员(50%来自国际)&#xff0c…

Excel地址

解题思路&#xff1a; 根据题中歪歪和笨笨的话可以有两种解法。 1.输入的数为多大&#xff0c;则循环1多少次&#xff0c;当值为27时就要进行进位操作。这时要分情况讨论。 当集合中元素为一个时&#xff0c;如26&#xff0c;则需要变为1 1&#xff0c;集合元素个数加一。 当…

2023年全球软件质量效能大会(QECon上海站):核心内容与学习收获(附大会核心PPT下载)

会议聚焦于软件质量和效能的提升。在智能时代&#xff0c;随着数字化的深入人心&#xff0c;软件正在随着云计算、移动互联网、物联网等的发展而不断进化&#xff0c;软件对企业的发展愈加重要&#xff0c;大家对软件的质量要求也在从传统功能、性能、安全这些基础层面向着用户…

easyui datagrid无数据时显示无数据

这里写自定义目录标题 需求解决办法 需求 使用datagrid显示记录时&#xff0c;结果查询记录数为0&#xff0c;此时需要显示无数据。 示例代码 <table id"dg"></table>$(#dg).datagrid({url:datagrid_data.json,columns:[[{field:code,title:Code,widt…

【OCR】实战使用 - 如何提高识别文字的精准度?

实战使用 - 如何提高文字识别的精准度 我们在平常使用OCR的时候&#xff0c;经常会出现文字识别不精准的情况&#xff0c;我们改如何提高文字识别的精度呢&#xff1f; 以下是一些提高OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;文字识…

(超详细)5-YOLOV5改进-添加A2Attention注意力机制

1、在yolov5/models下面新建一个A2Attention.py文件&#xff0c;在里面放入下面的代码 代码如下&#xff1a; import numpy as np import torch from torch import nn from torch.nn import init from torch.nn import functional as Fclass DoubleAttention(nn.Module):def …

coco数据集格式转yolo数据格式

一、coco数据集是什么&#xff1f; COCO&#xff08;Common Objects in Context&#xff09;是一个广泛使用的目标检测和分割数据集&#xff0c;而YOLO&#xff08;You Only Look Once&#xff09;是一种流行的实时目标检测算法。 首先&#xff0c;导入了必要的库&#xff0c…

87.乐理基础-记号篇-反复记号(一)反复、跳房子

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;86.乐理基础-记号篇-速度记号-CSDN博客 首先是反复记号表总结图&#xff1a; 当前是写前两个记号&#xff0c;其余记号后面写&#xff1a;这些反复记号最主要的目的很简单&#xff0c;还是为了节约纸张&#xff0c…

蓝桥杯单片机组备赛——LED指示灯的基本控制

&#x1f388;教程介绍&#xff1a;博客依据b站小蜜蜂老师的教程进行编写&#xff0c;文中会对老师传授的知识进行总结并加入自己的一些理解。教程链接 文章目录 一、点灯介绍二、相关数字芯片介绍2.1 74HC138介绍2.2 74HC573介绍2.3 74HC02介绍 三、代码设计思路四、代码编写…

Spring MVC 异常处理器

异常处理器 如果不加以异常处理&#xff0c;错误信息肯定会抛在浏览器页面上&#xff0c;这样很不友好&#xff0c;所以必须进行异常处理。 异常处理思路 系统的dao、service、controller出现都通过throws Exception向上抛出&#xff0c;最后由springmvc前端控制器交由异常处…

解决跨域问题的8种方案(最新最全)

什么是跨域: 浏览器对于javascript的同源策略的限制,例如http://a.cn下面的js不能调用http://b.cn中的js,对象或数据(因为http://a.cn和http://b.cn是不同域),所以跨域就出现了.同域&#xff1a;简单的解释就是域名相同,端口相同,协议相同 为什么需要跨域&#xff1f; 在最一…

关于java方法定义的回顾

关于java方法定义的回顾 我们在上一篇文章中&#xff0c;对java的面向对象有了一个初步的理解&#xff0c;因为类里面方法是必不可少的&#xff0c;我们本篇文章对方法进行一个回顾&#xff0c;以便加深一下对方法的了解程度和使用&#x1f600;。 我们把前面讲解到方法的文章…