JavaScript前端学习大全

一、概念 


JavaScript简称为JS,这门语言诞生主要用于完成页面的数据验证,因此运行在客户端,需要浏览器来解析JavaScript的代码。是世界上最流行的脚本语言。JavaScript 是一种让网页变得有趣和动态的编程语言。比如,当你在网页上点击一个按钮时,JavaScript 可以让页面上的文字改变颜色,图片变大或者隐藏,或者显示一个弹出窗口询问你是否确认某个操作。

二.JS的特点


(1)交互性:它可以做的就是信息的动态交互
(2)安全性:不允许直接访问本次磁盘
(3)跨平台性:只要是可以解释JS的浏览器都可以执行,和平台无关.

三.引入方式


(1)内部脚本:

将JS代码定义在HTML页面中

330ab284aab1470fa1872197052cce3c.png

 运行结果:278b60a9b8e345d690743465d5c95c83.png

 

注意:

1.可以放在任何位置,前提是要语法正确

2.数量写多少个没有限制。

总结:但是呢,一般会放在body的后面,因为我们希望一打开页面网页能够先来加载这些html代码,然后再去执行js代码,这样用户的体验感会更好,因为如果说先执行js代码的话会浪费一些时间,但是呢先加载html的话用户可以先看到效果,那么体验感会更棒。


(2)外部脚本:

将JS代码定义在外部JS文件中,然后引入到HTML页面中。

cffaf74ac3234e80b5813c7f44725ff8.png

fb3fcfca4a1f44ebb02dc16954f296c1.png

 

运行结果040b233abdeb415eaaf408bae2f12160.png

 小技巧:src下面的路径可以这样获取,更准确,更方便

 9b0b95917ff44838b9bbd8887c0f8996.png

 四.书写语法


(1)区分大小写:与Java一样,变量名,函数名以及其他一切东西都区分大小写

(2)每行结尾的分号可有可无

(3)注释:①∥单行注释               

                   ② 多行注释:/**/ 

(4)大括号表示代码块

(5)定义的语句都要写在script标签里面(script标签建议写在html的body里面)

五.输出语句:

①使用 window.alert("");写入警告框

37bf1ad1a32342c5b760be2f6e7ed402.png

 

 运行结果:

3cc2bba7905a4b61ad9c670d586e61e7.png

 

 

②使用document.write("");写入html输出

04d47867efc14842a758d5de70cc7f01.png

 

 运行结果:c2852b98ea614a08ad586522d95b744c.png

 

 

③使用console.log("");写入浏览器控制台

fbf740e489a847b38e69c6f420bae1f9.png

 运行结果:77d0f2965ba34b65a87efb2a63a4409a.png

 六.JavaScript的变量


简介:变量就是用来保存数据的,JavaScript是一门弱类型语言,变量可以用来存放任意的数据类型的值

七.变量名需要遵循以下原则:


①组成字符可以是任何字母,数字,下划线或者是美元符号。
②不能以数字开头
③建议使用驼峰命名

在JavaScripy中使用var来声明变量

1.

e612ad05bc2a4091ad4c3be42746317a.png

 

 

 运行结果:

30b837ed54f44011a1436f15ec88d695.png

 2.

①作用域:全局变量:大概意思就是可以访问到代码块({}就是这个括号)以外的数据。
②.变量可以重复定义1ea127d50a4c463fa44d56e00a206b0a.png

 运行结果:3dd0cbe4cca04443978e97a6e24e0879.png

  八.

1.ECMAsript6新增了let关键字来定义变量,它的用法类似于var,但是声明的变量,只在let关键字所在的代码块内有效,并且呢不允许重复

①.代码例子

(只在let关键字所在的代码块内有效)

3c3590dd3ae44a4b8bda9bfaa43b2e6e.png

 运行结果:b4aaff3d845d4ee786895c8078602afc.png

                              ②不允许重复

f9c7100882f84c8595d651d0a8dcffb8.png

 运行结果:ade59a48283a4b498134da21ef5396fc.png

2.ECMAsript6新增了const关键字,用来声明一个只读的常量,一旦声明,常量的值就不能被改变

①用来声明一个只读的常量

faae672f8d034ff7b6e8fbb8418ccadd.png

运行结果:

e727e0d41b044e3dbcecb2b86629e3a8.png 

② 一旦声明,常量的值就不能被改变

918796f0913d4502a3969cce8d51c21b.png

 

 运行结果:

3eedbe98d0224e1384a55f9909b22182.png

 九.

数据类型:var test=20;
JavaScript中分为:原始类型和引用类型。


五种原始类型:


①number:数字(整数 ,小数,NaN(Not aNumber))

2e1e882961d949f1a54473b8f4bba901.png运行结果:4009447e18fd46fab7d33070385bf3fe.png

 

②string:字符,字符串,单双引皆可。

 

6dce8c14129441dcb98f1f89be42dec4.png

运行结果:16cacce2d81d476dbf8e4dbec369c550.png

 

 

③boolean:布尔。一般用来判断false,true。

54ec608b31f0446e845319c5b7c863b4.png

运行结果:a9c3fe0a018549279955d434d148227b.png

 

④null:对象为空

 8a58a19af0a144a49b36915cdc04e3bd.png

注意:为什么会弹出一个object?而不是null?

解答:在 JavaScript 中,使用 typeof 操作符检查 null 类型时,会返回 "object",这是 JavaScript 的一个历史遗留问题,属于语言本身的设计特点。这个问题可以追溯到 JavaScript 最初的实现中。JavaScript 最初是在较短的时间内设计和实现的,因此在语言的早期版本中存在一些不完善之处。在 JavaScript 的早期版本中,typeof null 返回的确实是 "object",这被视为 JavaScript 的一个缺陷。null 本质上是一种特殊的原始值,但在 typeof 操作中,它被错误地识别为对象。这个行为已经成为 JavaScript 的一个特性,并且为了保持向后兼容性,不能轻易改变。


⑤undefined:当声明的变量未初始化时,改变量的默认值是undefined.

使用typeof运算符可以获取数据类型
alert(typeof age);

==和===的代码例子

代码例子1

3e5f50ec252948bfb374a56b121534a2.png

 运行结果为:e59cb217ec684daa97276a2e5577d0b2.png

 注意:①

==a.会判断类型是否一样,如果不一样,则会进行类型转换b.再去比较两个值是否相等,相等则会返回true,反之则会返回false

===全等于,判断类型是否一样,如果一样就会返回true,反之
 

代码例子2

d5e2f944b8394354b9c6ece490ef02d9.png

 运行结果:

1e1d4369091444feafab30034a95dde8.png

 17b0c6d9d63f47e6b18588f3b1e3f644.png

 运行结果为:a09c8d64f8934ee39be0b84244786ef2.png

 

十.运算符

一元运算符:++,--
算术运算符:+,-,*,/,%
赋值运算符:=,+=,-=…
关系运算符:>,<,>=,!=,==,===
逻辑运算符:&&,‖,!
三元运算符:条件表达式?true_value:false_value

代码例子1

70c4b4a289ed441bafc1284889c7cb6d.png

 运行结果为:

ea29425297694e66bbff869e9e107103.png

注意:按照字符串的字面值,转为数字,如果字面值不是数字,则转为NaN.

 代码例子2d55b27b720214bdcbef2e0eaa62426b3.png

 运行结果为:
03e61205130c4b6d99c3af54892c043a.png

   类型转换:
    其他类型转换为number


    1.String:按照字符串的字面值,转为数字,如果字面值不是数字,则转为NaN 一般使用parseInt
2.boolean:true转为1 false转为0.

其他类型转换为Boolean:

1.nember:0和NaN转换为false,其他的数字转换为true

2.String:空字符串转为false,其他的字符串转为true

3.null:false

4.undefined:false

十一.函数
函数定义方式一:


函数(方法)是被那些设计为执行特定任务的代码块。
①定义:JavaScript函数通过function关键字进行定义,语法为:
function  functionName(参数1,参数2…){
         要执行的代码
}


注意:
①形式参数不需要类型。因为JavaScript是弱语言。
②返回值不需要定义类型,可以在函数内部直接使用return返回即可。

function add(a,b){
         return a+b;
}


②调用:函数名称(实际参数列表);
let result =add(1,2);

函数定义方式二:


var functionName=funtion(参数列表){
}

var add=function(a,b){
return a+b;
}
调用:JS中,函数调用可以任意传递个数参数
let result=add(1,2,3);

 

十二.Array

1.JavaScript对象:
Array:
String:
自定义对象:
定义:
①var 变量名=new Array(元素列表);方式一
var arr =new Array(1,2,3);

②var 变量名=[元素列表];方式二
  var arr =[1,2,3];

访问:
arr[索引]=值;
arr=[0]=1;

注意:JS数组类似于Java集合,长度,类型都可变

2.属性:length(字符串的长度)
方法:
①charAt:返回在指定位置的字符
②idexOf:检索字符串

3.

String定义:
var 变量名 =new String(s);方式一
var str=new String ("hello");方式二

var str="hello";
var str='hello';

4.自定义对象
格式:
var 对象名称={
            属性名称1:属性值1
            属性名称2:属性值2
            …
           函数名称:function(形参列表){}
          …
         };
例子:
var person={
         name:"张三",
       age:23,
     eat:function(){
       alert("干饭~");
      }
};

十三.BOM:


Browser Object Model浏览器对象模型
JavaScript:将浏览器的各个组成部分封装为对象
组成:
① Window:浏览器窗口对象。
②Nacigator:浏览器对象。
③screen:屏幕对象
④ History:历史记录对象
⑤Location:地址栏对象

Window:浏览器窗口对象
获取:直接使用window,其中windows可以省略110d78c48ff34d55b1e83585f864f616.png

 运行结果:1522cc24a6f44a5e9c7c4f9ad1308e17.png 

confirm()方法:

13c6df53ac734008b0752f1c1ab2b553.png

 运行结果:

e96ef3671bc64389adaadf5669356c08.png

1b0d520a054a4023b6a7c24390fb643f.png 

 注意:点击确定按钮会返回true,点击取消按钮会返回false

定时器:

单次定时器,只执行一次


①setTimeout(function,毫秒值):在一定时间间隔后执行一个function,执行一次

②setInterval(function,毫秒值):在一定的时间间隔后执行一个function,循环执行)fd2bc8d3af194d6496f33085fec4b0ad.png

 运行结果为:每三秒执行一次快乐

循环执行

c1107d1ba7b6459a86a9879aecddbe05.png

 运行结果为:每三秒重复循环天天快乐

④History:历史记录


获取:使用window.history获取,其中window.可以省略

语法:
history.方法();

常用的方法:
返回网页的上一步: history.back

进入下一个网页: history .forward

⑤Location:地址栏对象


使用window.location获取,其中window可以忽略.
语法:
Location.方法();

常用的方法:
跳转到指定的网页

跳转到百度的例子:
location.href="https:∥www.baidu.com"

location跳转到百度的例子501dc14755494a31b25b492f04b2a1d8.png

 运行结果为:4c0db65d1c7a4d5ab7e7b04141304fc0.png

b33245a9bfcf419182552141aab54e03.png 

 十四.DOM


①Document Object Modle文档对象模型

②将标记语言的各个组成部分封装为对象。
a: Document:整个文档对象
b: Element:元素对象
c:Atttibute:属性对象
d:Text:文本对象
e: Comment:注释对象

DOM树

3f3845f68e654674b5a766d3715be350.png

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


①改变元素HTML的内容
②改变HTML元素的样式
③对HTML DOM事件作出反应。
④添加和删除HTML元素

获取Element
Element:元素对象
获取:使用Document对象的方法来获取
1.getElementByld:根据id属性值获取,返回一个Element对象

2.getElementByldTagName:根据标签名称获取,返回
Element对象数组。

3.getElementByldName
:根据name属性值获取,返回Element对象数组

4.getElementByldClassName:根据class属性值获取,返回Element对象数组

十五.事件监听


事件:HTML事件是发生在HTML元素上的"事情",比如:
①按钮被点击
②鼠标移动到元素之上
③按下键盘按键
事件监听:JavaScript在事件被侦测到时执行代码

十六.事件绑定:


事件绑定有两种方式:
方式一:通过html标签中的事件属性进行绑定

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

2f146953317144f9a117f61185b2ff39.png

 注意:

通常来说,更推荐使用第二种方式,即通过DOM元素属性绑定事件。这种方式使得HTML更加清晰,JavaScript与HTML分离,有助于代码的组织和维护。
 

十七.常见事件:


①onclick:鼠标单击事件
②onblur:元素失去焦点
③onfocus:元素获得焦点
④onload:某个页面或图像被完成加载
⑤onsubmit:当表单提交时触发该事件
⑥onkeydown:某个元素的键被按下
⑦onmousever:鼠标被移动某元素之上
⑧onmouseout:鼠标从某元素移开

十八.正则表达式
简介:正则表达式定义了字符串的组成规则,一般用来进行验证使用。非常的方便 

语法:

^:表示开始

$:表示结束

[]:代表某个范围内的单个字符,比如[0~9]单个数字字符

.:代表任意单个字符,除了换行和结束符

\w:代表单词字符:字母、数字、下划线

\d:代表数字字符,相当于[0~9]

量词

+:至少一个

*:零个或者多个

?:零个或者一个

{x}:x个

{m}:至少m个

{m,n}:至少m个,最多n个

 

定义:1.直接量:注意不要加引号          var reg=/^\w{6,12}$/;        2.创建RegExp对象            var reg=new RegExp("^\\w{6,12}$");

3.方法:test(str):判断指定字符串是否符合规则,返回false或者true

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习【RabbitMQ入门】这一篇就够了

目录 1. RabbitMQ入门1-1. 同步调用1-2. 异步调用1-3. MQ技术选型1-4. RabbitMQ介绍消息模式 1-5. SpringAMQPBasic QueueWork QueueFanout ExchangeDirect ExchangeTopic Exchange消息转换器 1. RabbitMQ入门 1-1. 同步调用 优势&#xff1a; 时效性强&#xff0c;等待到结…

当前2024阿里云服务器哪个地域价格比较优惠,哪个地域便宜?

目前2024年阿里云服务器地域对比哪个价格更优惠&#xff1f;华北6&#xff08;乌兰察布&#xff09;、华北3&#xff08;张家口&#xff09;、华北1&#xff08;青岛&#xff09;和华南2&#xff08;河源&#xff09;地域更便宜&#xff0c;云服务器吧yunfuwuqiba.com整理阿里云…

【量子计算机为什么能吊打通用计算机】浅谈

Quntum Computer 一、量子计算机导入 这是一双手&#xff0c;这是大自然送给你最神奇的礼物&#xff0c;你用它来写字、吃饭、打游戏&#xff0c;除此之外&#xff0c;它还有一个妙不可言的功能&#xff0c;计算。是的&#xff0c;手是你人生中的第一个计算器&#xff0c;到小…

Azure service tag 导致的Exchange online 无法发送邮件的问题

最近碰到一个比较有趣的客户问题。 这个客户一直在使用Exchange online 与自己在Azure Vnet 里面的exchange server交换邮件。 客户的网络架构如下图所示。 客户说之前从exchange online往外发邮件一直是好的,但是最近两周开始只有百分之3左右的邮件可以发出去,其他的都pen…

java中大型医院HIS系统源码 Angular+Nginx+SpringBoot云HIS运维平台源码

java中大型医院HIS系统源码 AngularNginxSpringBoot云HIS运维平台源码 云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务&#xff0c;提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工…

不连续页分配器

不连续页分配器 在设备长时间运行后&#xff0c;内存碎片话&#xff0c;连续的物理页比较稀缺&#xff1b;伙伴分配器和slab块分配器&#xff0c;分配的内存物理上是连续的&#xff1b;在这种情况下&#xff0c;如果需要分配长度超过一页的内存块&#xff0c;可以使用不连续页…

LeetCode-17. 电话号码的字母组合【哈希表 字符串 回溯】

LeetCode-17. 电话号码的字母组合【哈希表 字符串 回溯】 题目描述&#xff1a;解题思路一&#xff1a;回溯三部曲&#xff1a;解题思路二&#xff1a;回溯解题思路三&#xff1a; 题目描述&#xff1a; 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组…

【JavaSE】反射

Java代码的生命周期 Java代码在计算机中经历的阶段&#xff1a;Source源代码阶段、Class类对象阶段、RunTime运行时阶段。 Source源代码阶段: 这个阶段是由程序员编写生成源代码,再由Javac编译器生成class文件。 Class类对象阶段&#xff1a;由类加载器将class文件加载到JVM内…

【保姆级教程】如何订阅OnlyFans?如何在OnlyFans上面支付?OnlyFans虚拟卡订阅教程

1. 引言 什么是OnlyFans&#xff1a;OnlyFans是一种内容订阅服务&#xff0c;成立于2016年&#xff0c;允许内容创作者从用户那里获得资金&#xff0c;用户需要支付订阅费用才能查看他们的内容。它在多个领域受到欢迎&#xff0c;包括音乐、健身、摄影&#xff0c;以及成人内容…

C语言之指针(4)使用并模拟实现qsort

冒泡排序有局限性&#xff0c;实现时间长而且只能进行整型数据的排序&#xff0c;接下来介绍模拟实现qsort来方便实现各种数据的排序。 函数基本形式&#xff1a; 可以看到该函数有四个参数&#xff0c;第四个参数是一个函数指针&#xff0c;这个指针指向的函数第一个参数和第…

数据分析——数据规范化

数据规范化是数据分析中的一个重要步骤&#xff0c;其目的在于确保数据的一致性和可比性&#xff0c;提高数据质量和分析结果的准确性。以下是一些数据规范化的常见方法和技术&#xff1a; 数据清洗&#xff1a;此步骤主要清除数据中的重复项、空格、格式错误等&#xff0c;确…

【Oracle】oracle、mysql、sql server三者区别

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Oracle》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识…

Waifu2x:使用深度卷积神经网络的动漫风格艺术的图像超分辨率

Github网址&#xff1a;nagadomi/waifu2x&#xff1a;动漫风格艺术的图像超分辨率 (github.com) 该项目主要讲述的是如何利用预训练的深度学习模型来达到无损扩大收缩和去噪&#xff0c;对于一般训练图像的小伙伴应该很清晰图像经常要通过resize操作固定大小&#xff0c;然后c…

操作系统① —— 进程管理

1. 进程、线程、协程 进程&#xff1a; 是系统进行资源分配的基本单位私有地址空间&#xff0c;私有栈、堆上下⽂切换需要切换虚拟地址空间 线程&#xff1a; 是资源调度的基本单位公有同⼀地址空间&#xff0c;公有堆、私有栈上下⽂切换只需要切换少量寄存器 进程和线程的对比…

Oracle APEX 23.2版本 使用应用程序工作副本进行协作开发

现状描述&#xff1a; 当前APEX协作开发都是在同一应用程序下进行的&#xff0c;这样做有可能因同一时间对同一数据进行操作造成锁表或其他问题&#xff0c;Oracle APEX23.2版本迭代后新增了部分功能&#xff0c;可以创建应用程序的工作副本来修复错误、添加功能&#xff0c;然…

趣学前端 | 综合一波CSS选择器的用法

背景 最近睡前习惯翻会书&#xff0c;重温了《HTML5与CSS 3权威指南》。这本书&#xff0c;分上下两册&#xff0c;之前读完了上册&#xff0c;下册基本没翻过。为了对得起花过的每一分钱&#xff0c;决定拾起来近期读一读。 CSS 选择器 在CSS3中&#xff0c;提倡使用选择器…

大模型生成RAG评估数据集并计算hit_rate 和 mrr

文章目录 背景简介代码实现公开参考资料 背景 最近在做RAG评估的实验&#xff0c;需要一个RAG问答对的评估数据集。在网上没有找到好用的&#xff0c;于是便打算自己构建一个数据集。 简介 本文使用大模型自动生成RAG 问答数据集。使用BM25关键词作为检索器&#xff0c;然后…

AI图片智能选区抠像解决方案

高质量的图片处理往往依赖于繁琐的手动操作&#xff0c;耗费大量时间与精力。美摄科技推出了一款革命性的AI图片智能选区抠像解决方案&#xff0c;旨在帮助企业轻松实现图片的高效处理&#xff0c;提升内容创作效率与质量。 美摄科技的AI图片智能选区抠像解决方案&#xff0c;…

An Aspect-Based Engine

GPU Pro 译&#xff1a; By 王钰涵 2024 4.14 10.1 Introduction&#xff08;简介&#xff09; 引擎的定义在整个行业中有所不同。在最基本的层面上&#xff0c;该术语描述了一个代码库&#xff0c;它在多个项目中提供共同的功能。其目的是分享开发这些功能所需的资源成本…

知网参考文献引用格式转latex中BibTex-Python操作

处理思路 参考 处理步骤&#xff1a; &#xff08;单条处理&#xff1a;&#xff09; 1、选知网NoteExpress格式的2-7行复制信息 2、新建一个文本文件&#xff0c;命名为cite.txt&#xff0c;把知网所复制信息粘贴进来 &#xff08;txt文件保存编码ANSI可行&#xff09; 3、…