(二)JavaScript

news2024/11/24 4:00:59

JavaScript 是一门跨平台、面向对象的脚本语言。JavaScript 是用来控制网页行为的,它能使网页可交互。

一、JavaScript 引入方式(P71)

(1)内部脚本:将 JS 代码定义在 HTML 页面中
(2)外部脚本:将 JS 代码定义在外部 JS 文件中,然后引入到 HTML 页面中

1. 内部脚本

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

2. 外部脚本

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script src="../js/demo.js"></script>
</body>
</html>

二、JavaScript 基础语法

1. 书写语法

(1)区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的
(2)每行结尾的分号可有可无,如果一行上写多个语句时,必须加分号用来区分多个语句。
(3)注释
1️⃣ 单行注释: // 注释内容
2️⃣多行注释: /* 注释内容 */
(4)大括号表示代码块
if (count == 3) {
    alert(count);
}

2. 输出语句

(1) 使用 window.alert() 写入警告框
(2)使用 document.write() 写入 HTML 输出
(3)使用 console.log() 写入浏览器控制台  
<script>
    window.alert("hello js~");//写入警告框

    document.write("hello js 2~");//写入html页面

    console.log("hello js 3");//写入浏览器的控制台
</script>

3. 变量

JavaScript 中用 var 关键字( variable 的缩写)来声明变量。
而在 JavaScript 是一门弱类型语言,变量 可以存放不同类型的值
var test = 20;
test = "张三";
js 中的变量名命名也有如下规则,和 java 语言基本都相同
(1)组成字符可以是任何字母、数字、下划线(_)或美元符号($
(2)数字不能开头
(3)建议使用驼峰命名
JavaScript var 关键字有点特殊
(1) 作用域:全局变量
{
    var age = 20;
}
alert(age); // 在代码块中定义的age 变量,在代码块外边还可以使用

(2)变量可以重复定义

{
    var age = 20;
    var age = 30;//JavaScript 会用 30 将之前 age 变量的 20 替换掉
}
alert(age); //打印的结果是 30
ECMAScript 6 新增了 let 关键字来定义变量。它的用法类似于 var ,但是所声明的变量,只在 let 关键字所在的代码块内有效,且不允许重复声明。
ECMAScript 6 新增了 const 关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变。

4. 数据类型

JavaScript 中提供了两类数据类型:原始类型 和 引用类型。
使用 typeof 运算符可以获取数据类型
原始数据类型:
(1)number:数字(整数、小数、NaN(Not a Number))
(2)string:字符、字符串,单双引皆可
(3)boolean:布尔。true,false
(4)null:对象为空
(5)undefined:当声明的变量未初始化时,该变量的默认值是 undefined
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>
    // number
    // var age = 20;
    // var price = 99.8;
    // alert(typeof age);
    // alert(typeof price);

    //string
    // var ch = 'a';
    // var name = '张三';
    // var addr = "北京";
    //
    // alert(typeof ch);
    // alert(typeof name);
    // alert(typeof addr);
    //
    // //boolean
    // var flag = true;
    // var flag2 = false;
    //
    // alert(typeof flag);
    // alert(typeof flag2);
    //
    // //null
    // var obj = null;
    //
    // alert(typeof obj);//object
    //
    // //undefined
    var a ;
    alert(typeof a);

</script>

</body>
</html>

5. 运算符

一元运算符: ++ --
算术运算符: + - * / %
赋值运算符: = += -=…
关系运算符: > < >= <= != == ===…
逻辑运算符: && || !
三元运算符:条件表达式 ? true_value : false_value
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>
    /*
        ==:
            1. 判断类型是否一样,如果不一样,则进行类型转换
            2. 再去比较其值

        ===:全等于
            1. 判断类型是否一样,如果不一样,直接返回false
            2. 再去比较其值

     */
    var age1 = 20;
    var age2 = "20";

    // alert(age1 == age2);// true
    // alert(age1 === age2);// false

    /*
        类型转换:
            * 其他类型转为number:
                1. string: 按照字符串的字面值,转为数字.如果字面值不是数字,则转为NaN。一般使用parseInt
                2. boolean: true 转为1,false转为0

            * 其他类型转为boolean:
                1. number:0和NaN转为false,其他的数字转为true
                2. string:空字符串转为false,其他的字符串转为true
                3. null:false
                4. undefined:false
     */
    // var str = +"20";
    /*var str = "20";
    alert(parseInt(str) + 1);*/

/*
    var flag = +false;
    alert(flag);*/

    // var flag = 3;
    // var flag = "";
 /*   var flag = undefined;

    if(flag){
        alert("转为true");
    }else {
        alert("转为false");
    }*/

    var str = "abc";

    //健壮性判断
    //if(str != null && str.length > 0){
    if(str){
        alert("转为true");
    }else {
        alert("转为false");
    }

</script>
</body>
</html>

6. 流程控制语句

JavaScript 中提供了和 Java 一样的流程控制语句,如下
if
switch
for
while
dowhile

7. 函数

函数(就是 Java 中的方法)是被设计为执行特定任务的代码块; JavaScript 函数通过 function 关键词进行定义。

7.1 定义函数

function 函数名(参数1,参数2..){
    要执行的代码
}
var 函数名 = function (参数列表){
    要执行的代码
}
注意:
(1) 形式参数不需要类型。因为 JavaScript 是弱类型语言
(2)返回值也不需要定义类型,可以在函数内部直接使用  return  返回即可

7.2 函数调用

函数名称 ( 实际参数列表 );
(1)JS 中,函数调用可以传递任意个数参数
(2) 例如 let result = add(1,2,3) ;
它是将数据 1 传递给了变量 a ,将数据 2 传递给了变量 b ,而数据 3 没有变量接收。

三、JavaScript 常用对象

JavaScript 提供了很多对象供使用者来使用。这些对象总共分为三类
(1)基本对象

(2) BOM 对象

(3) DOM对象

DOM 中的对象就比较多了,下图只是截取部分

1. Array 对象

JavaScript Array 对象用于定义数组

1.1 定义格式

方式 1: var 变量名 = new Array ( 元素列表 );
var arr = new Array(1,2,3); //1,2,3 是存储在数组中的数据(元素)
方式2: var 变量名 = [ 元素列表 ];
var arr = [1,2,3]; //1,2,3 是存储在数组中的数据(元素)

1.2 元素访问

arr [ 索引 ] = ;
var a = arr2[0];

1.3 特点

JavaScript 中的数组相当于 Java 中集合。数组的长度是可以变化的,而 JavaScript 是弱类型,所以可以存储任意的类型的数据。

1.4 属性

1.5 方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>

    // 方法:
    // push:添加方法
    var arr5 = [1,2,3];
    /* arr5.push(10);
     alert(arr5);*/

    // splice:删除元素
    arr5.splice(0,1);
    alert(arr5);

</script>

</body>
</html>

2. String 对象

方式 1: var 变量名 = new String ( s );
var str1 = new String("abc");
方式2: var 变量名 = s ;
var str2 = "abc";
var str3 = 'abc';
属性: String  对象提供了很多属性,下面给大家列举了一个属性 length ,该属性是用于动态的获取字符串的长度
alert(str3.length);
函数:String  对象提供了很多函数(方法)
var str4 = '  abc   ';

alert(1 + str4.trim() + 1);

3. 自定义对象

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

调用属性的格式: 对象名 . 属性名
调用函数的格式: 对象名 . 函数名 ()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>

    var person = {
        name : "zhangsan",
        age : 23,
        eat: function (){
            alert("干饭~");
        }

    };

    alert(person.name);
    alert(person.age);

    person.eat();

</script>
</body>
</html>

四、BOM

BOM Browser Object Model 浏览器对象模型。也就是 JavaScript 将浏览器的各个组成部分封装为对象。
BOM 中包含了如下对象:
(1)Window :浏览器窗口对象
(2)Navigator :浏览器对象
(3)Screen :屏幕对象
(4)History :历史记录对象
(5)Location :地址栏对象

1. Window 对象

该对象不需要创建直接使用 window ,其中 window. 可以省略。
window.alert("abc");

alert("abc");
属性: 获取其他 BOM 组成对象

方法:

2. History

获取: 使用 window.history  获取,其中  window. 可以省略
window.history.方法();

history.方法();
方法:

3. Location

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

location.方法();
属性:

五、DOM

1. 概述

DOM Document Object Model 文档对象模型。
也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象
(1)Document :整个文档对象
(2)Element :元素对象
(3)Attribute :属性对象
(4)Text :文本对象
(5)Comment :注释对象

JavaScript 通过 DOM, 就能够对 HTML 进行操作了
(1) 改变 HTML 元素的内容
(2)改变 HTML 元素的样式( CSS
(3)对 HTML DOM 事件作出反应
(4)添加和删除 HTML 元素
DOM 相关概念:
DOM W3C (万维网联盟)定义了访问 HTML XML 文档的标准。该标准被分为 3 个不同的部分:
(1) 核心 DOM :针对任何结构化文档的标准模型。 XML HTML 通用的标准
        Document:整个文档对象
        Element:元素对象
        Attribute:属性对象
        Text:文本对象
        Comment:注释对象
(2)XML DOM : 针对 XML 文档的标准模型
(3)HTML DOM: 针对 HTML 文档的标准模型(该标准是在核心 DOM 基础上,对 HTML 中的每个标签都封装成了不同的对象)
1️⃣例如: <img> 标签在浏览器加载到内存中时会被封装成 Image 对象,同时该对象也是 Element 对象。
2️⃣ 例如: <input type='button'> 标签在浏览器加载到内存中时会被封装成 Button 对象,同时该对象也是  Element 对象。

2. 获取 Element 对象

HTML 中的 Element 对象可以通过 Document 对象获取,而 Document 对象是通过 window 对象获取。
Document 对象中提供了以下获取 Element 元素对象的函数
(1)getElementById() :根据 id 属性值获取,返回单个 Element 对象
(2)getElementsByTagName() :根据标签名称获取,返回 Element 对象数组
(3)getElementsByName() :根据 name 属性值获取,返回 Element 对象数组
(4)getElementsByClassName() :根据 class 属性值获取,返回 Element 对象数组

3. 常见 HTML Element 对象使用

查阅文档

六、事件监听

事件:HTML 事件是发生在 HTML 元素上的 事情
比如:
(1) 按钮被点击
(2) 鼠标移动到元素之上
(3) 按下键盘按键 
事件监听: JavaScript 可以在事件被侦测到时 执行一段逻辑代码。

1. 事件绑定

JavaScript 提供了两种事件绑定方式:
(1) 方式一:通过 HTML 标签中的事件属性进行绑定
<input type="button" value="点我" onclick="on()">

<script>

    function on(){
        alert("我被点了");
    }
    
</script>

(2)方式二:通过 DOM 元素属性绑定

<input type="button" value="再点我" id="btn">

<script>

    document.getElementById("btn").onclick = function (){
        alert("我被点了");
    }

</script>

2. 常见事件

七、RegExp对象

RegExp 是正则对象。正则对象是判断指定字符串是否符合规则。
正则对象有两种创建方式:
(1)直接量方式:注意不要加引号
var reg = /正则表达式/;

(2)创建 RegExp 对象

var reg = new RegExp("正则表达式");
方法:
test(str) :判断指定字符串是否符合规则,返回 true false
语法:
^ :表示开始
$ :表示结束
[ ] :代表某个范围内的单个字符,比如: [0-9] 单个数字字符
. :代表任意单个字符,除了换行和行结束符
\w :代表单词字符:字母、数字、下划线 ( ) ,相当于 [A-Za-z0-9 ]
\d :代表数字字符: 相当于 [0-9]
量词:
+ :至少一个
* :零个或多个
?:零个或一个
{x} x
{m,} :至少 m
{m,n} :至少 m 个,最多 n

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

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

相关文章

ActiveMQ集群模式

目录 一、面试题 二、多节点集群是什么 三、zookeeperreplicated-leveldb-store的主从集群 四、官网集群原理图 五、部署规划和步骤 六、集群可用性测试 一、面试题 引入消息队列之后该如何保证其高可用性 二、多节点集群是什么 基于ZooKeeper和LevelDB搭建ActiveMQ 集…

API签名鉴权设计

鉴权作用 在实际的业务中&#xff0c;必然会存在和其他平台系统进行数据传输。这个时候出于对数据的保密要求&#xff0c;都会对接口&#xff08;API&#xff09;添加鉴权机制&#xff0c;识别调用方的真实身份&#xff0c;对未通过鉴权的请求不做任何业务处理&#xff0c;以帮…

国科大模式识别导论作业3:神经网络

目录题目代码data.pyutils.pynetwork.pymain.py结果整理一下近期作业中的编程题&#xff0c;仅供交流学习题目 本题使用的数据如下&#xff1a; 第一类 10 个样本&#xff08;三维空间&#xff09;&#xff1a; [ 1.58, 2.32, -5.8], [ 0.67, 1.58, -4.78], [ 1.04, 1.01, -3…

OpenCV 图像旋转、平移、缩放

本文是 OpenCV图像视觉入门之路的第7篇文章&#xff0c;本文详细的进行了图像的缩放 cv2.resize()、旋转 cv2.flip()、平移 cv2.warpAffine()等操作。 OpenCV 图像旋转、平移、缩放目录 1 缩放图片 2 翻转图片 2.1 垂直翻转 2.2 水平翻转 2.3 水平垂直翻转 ​编辑 3 平移…

百度离线人脸识别SDK

1&#xff0c;采坑备忘 &#xff08;1&#xff09;8.1版本的SDK在spring-boot接口访问第一次正常&#xff0c;第二次之后JVM会奔溃&#xff0c;可能是java gc 处理C开出的内存有问题。 换6.1.3版本的SDK。 javaWindows百度离线人脸识别SDK6.1.3-Java文档类资源-CSDN下载javaW…

Harmony/OpenHarmony应用开发-转场动画页面间转场

在全局pageTransition方法内配置页面入场和页面退场时的自定义转场动效。 说明&#xff1a;从API Version 7开始支持。开发语言ets. 名称 参数 参数描述 PageTransitionEnter { type: RouteType, duration: number, curve: Curve | string, delay: number } 设置当前页面…

1998-2014年企业绿色发展数据库

1998-2014年工业企业的排放排污和环境治理等信息数据 1、时间&#xff1a;1998-2014年 2、数据来源&#xff1a;原环保部。 3、统计字段&#xff1a;主要有企业基本信息、生产信息、水环境、大气环境&#xff0c;内容涵盖了资源利用类指标&#xff08;工业用水量、煤炭消费量…

YGG 与 Thirdverse 达成合作,将《足球小将》IP 带入 Web3

YGG 与 Thirdverse 建立了合作关系&#xff0c;Thirdverse 是一家专注于多人 VR 和 Web3 游戏的游戏工作室&#xff0c;在日本和美国分别设有办事处。 YGG 通过购买未来股权的简单协议&#xff08;SAFE&#xff09;参与了 Thirdverse 近期的 1500 万美元融资。这种合作关系将使…

FastAPI从入门到实战(16)——依赖项

依赖注入是耳熟能详的一个词了&#xff0c;听起来很复杂&#xff0c;实际上并没那么复杂&#xff0c;正常的访问需要接受各种参数来构造一个对象&#xff0c;依赖注入就变成了只接收一个实例化对象&#xff0c;主要用于共享业务逻辑、共享数据库连接、实现安全、验证、权限等相…

原油投资怎么样赚钱?原油投资赚钱技巧有哪些?

以前没有交易过原油的投资者&#xff0c;看到其他投资者从中获得了较好的盈利&#xff0c;也想通过原油投资来赚钱。那么原油投资到底能不能赚钱&#xff0c;是很多新手投资者比较想了解的问题。其实原油投资想盈利并不能全部依靠运气&#xff0c;只有掌握了原油投资赚钱技巧&a…

【Java基础】Java日志—什么是日志级别?如何配置数据源到不同的位置?配置文件内容都是什么含义?

目录 一、log4j1详情&#xff1a;记录器和日志级别 二、 log4j1详情&#xff1a;输出源【输出到不同的位置】 1、ConsoleAppender【将日志输出到控制台】 2、FileAppender【将日志输出到文件】 3、DailyRollingFileAppender【每日输出到一个新文件】 4、JDBCAppender【输…

FineReport开源报表系统-JS实现切换Tab块时进行数据联动

1. 概述 1.1 预期效果 在决策报表中&#xff0c;希望 Tab 块轮播切换时&#xff0c;可实现与报表块的数据联动。如下图所示&#xff1a; 1.2 实现思路 通过 JS 获取每个 Tab 块的轮播标题&#xff0c;转换为参数值&#xff0c;再通过控件进行界面传参&#xff0c;实现联动效果…

程序员工作五年后一般会怎样?

最近看到一些吐血言论“一个程序员工作5年后还没成为大牛&#xff0c;是不是该考虑别的路子了&#xff1f;”还有“程序员入行五年&#xff0c;有可能攒够80吗&#xff1f;”不是&#xff0c;程序员工作五年&#xff0c;是戳中了谁的痛点吗&#xff1f;&#xff1f;大家对五年经…

128页4万字某智慧能源集团数字化管理平台项目建议书

【版权声明】本资料来源网络&#xff0c;仅用于行业知识分享&#xff0c;供个人学习参考&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间进行删除&#xff01;完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 方案设计 在当…

公司新来的软件测试工程师接私活被抓了,难怪他天天加班到凌晨

昨天和我一起进公司的测试部门同事上班接私活被老板抓了&#xff0c;这人才来不到两个月&#xff0c;每天加班到凌晨。刚开始还以为他是个卷王&#xff0c;没想到此人上班时间接单&#xff0c;用加班时间来完成公司需求&#xff0c;造成努力的假象。被老板在办公室骂了俩小时&a…

v$asm_disk中free_mb低于300m导致加盘报ora-15041

背景&#xff1a; 某项目扩容加盘到磁盘组中报磁盘组空间耗尽的错误&#xff0c;如下 明明是加盘&#xff0c;却报空间不足的错误&#xff0c;令人费解 报错的磁盘组为normal冗余&#xff0c;且Usable_file_MB为负&#xff0c;且Free_MB剩余很少或为0 问题排查&#xff1a; …

MS 训练笔记【2】:nnFormer

文章目录前言1. 安装2. 训练与测试2.1. 数据处理2.1.1. 整理数据路径2.1.2. 设置 nnFormer 读取文件的路径2.1.3. 数据集预处理2.2. 训练2.2.1. 训练代码2.2.2. 可能出现的问题及解决办法2.3. 预测总结前言 本文主要记载 nnFormer 从安装到训练再到推理的过程。nnFormer 的环境…

invokeBeanFactoryPostProcessors的理解

invokeBeanFactoryPostProcessors的理解 Spring中有两个非常重要的扩展点&#xff1a; BeanFactoryPostProcessorBeanPostProcessor 其中第一个是可以对BeanDefinition注册时进行扩展&#xff0c;而第二个是对spring中IOC容器中的对象进行实例化的时候进行扩展。 今天主要谈一…

【安全漏洞】水平权限漏洞和垂直权限漏洞

前言 权限校验非常重要。如果不对水平、垂直权限做校验&#xff0c;就会发生泄漏用户数据的事故&#xff0c;造成P0故障。 一、水平权限漏洞 1、水平权限漏洞基本概念 什么是水平权限漏洞呢&#xff1f; 简单来说&#xff0c;水平权限漏洞是用户CURD了本不属于他的资源。以上图…

复活天若OCR的谷歌翻译接口

文章目录1. 资源2. 效果3. 前言4. 网络相关4.1. 网络判断4.2. 网络设置5. 修改5.1. 代码修改原理5.2. 代码修改1. 资源 这里直接放出来我已经修改编译好的天若OCR&#xff0c;开箱即用&#xff1a;https://www.lanzoui.com/ifT8t0jfv1gd 访问码&#xff1a;24647 不过需要说明…