第三章:JavaScript 脚本语言(一)

news2024/9/27 17:30:21

一、简介

JavaScript是web页面中的一种脚本语言,由客户端浏览器解释执行。不需要编译,主要作用是将静态页面转换成用户交互的动态页面

JavaScript主要有三大部分:ECMAScript (核心),DOM(文档对象模型),BOM(浏览器对象模型)。ECMAScript主要包含了JavaScript的基础语法知识。

JavaScript主要依赖浏览器与操作系统无关

二、配置编译环境

若未安装node.编译器则在idea会显示未找到(node no executable found in %path%)

1、在官网上下载node.js编译器,安装

2、进入DOS查看是否安装成功 (查看版本号)

 3、当我们下载并在idea配置后,直接运行会显示:

 //没有系统学习,原因未知

在浏览器控制台上可运行,作用为弹出一个窗口

对于下列代码可以运行

 在html框架中,JavaScript代码主要嵌套与<script language = "javascript">...</script>之中

三、基本知识

一、基本语法

  • JavaScript区分大小写
  • JavaScript每行的分号可有可无
  • 变量为弱类型,可用var运算符,将变量初始化为任意的值
  • 单行注释//  多行/**/

 二、基本数据结构

  • 数值型
  • 字符型
  • 布尔型,与c语言一样 非0为true 0为flase
  • 转义字符
  • 空值(null)
  • 未定义值 
  • 非数字  NaN,当程序在计算错误时,将产生一个没有用的数字,此时函数返回的就是                 NaN

 三、变量的定义与使用

变量的命名规则:与其他语言一样。

变量的声明:可用var声明变量

  1. 注意:如果只是声明了变量,未进行赋值,则默认值为undefined
  2. var声明的为全局变量

 变量的作用域:与其他语言一样。

四、运算符

与其他语言一样

五、流程控制语句

1、if语句

实例1:利用if语句来验证用户登录信息是否为空

步骤:先在HTML中构建一个form表单,在构建check函数,最后调用

 html form表单

<!--首先创建表单元素-->
<form name="form1" method="post" action="">
  用户名:<input name="user" type="text" id="user">
  密码:<input name = "pwd" type="password" id="pwd">
    <br>
    <input name="Button" type="button" class="btn_grey" value="登录" onclick="chaeck()">
    <input name="Submit2" type="reset" class="btn_grey" value="重置">

</form>

 JavaScript 

<!--创建check函数判断是否输入为空-->
<script language="JavaScript">
    function check()
    {
        if (form_1.user.value=="")
        {
            alert("请输入用户名!");
            form_1.user.focus();
            return ;
        }
        else if(form1.pwd.value=="")
        {
            alert("请输入密码!");
            form_1.pwd.focus();
            return ;
        }
        else
            form_1.submit();
    }
</script>

注意:最后要在登录标签中调用check函数,其登录对应点击事件(onclick),即为

<input.... onclick = "check()">
    <input name="Button" type="button" class="btn_grey" value="登录" onclick="check()">

 2、循环语句:与Java相同

3、函数

关键字function来定义函数。其函数结构与Java语言相同。

函数的调用

实例2:定义函数checkRealName,用于检测输入的字符串是否为汉字,在HTML中导入js文件

JavaScript

function checkRealName()
{
    var str = form_1.realName.value;
    if(str=="")
    {
        alert("请输入真实姓名!");
        form_1.realName.focus();
        return ;
    }
    else
    {
        var obj_Exp = /[\u4E00-\u9FA5]{2,}/;
        if(obj_Exp.test(str)==true)
            alert("输入的真实姓名正确!");
        else
            alert("输入的真实姓名错误!");
    }
}

调用过程

<script type="text/javascript" src="/JavaScript_Study/function_Tools.js"> </script>
<input name="Button1" type="button" class="btn_grey1" value="检测" onclick="checkRealName()">

 当没有正常弹出弹框时,要注意src路径是否正确,str值是否正常获取到了表单元素!!!

 四、事件处理

一、事件处理程序

事件处理程序:用于响应某个事件而执行的处理程序。

 对于上述例子,事件onclick,而事件处理程序就是为了响应onclick点击事件,而执行处理程序(readRealName函数)

二、JavaScript常用事件

1.点击事件:

  • onclick:单击事件
  • ondblclick:双击事件

2.焦点事件

  • onblur:失去焦点
  • onfocus:元素获得焦点。

3.加载事件:

  • onload:一张页面或一幅图像完成加载。

4.鼠标事件:

  • onmousedown 鼠标按钮被按下。
  • onmouseup 鼠标按键被松开。
  • onmousemove 鼠标被移动。
  • onmouseover 鼠标移到某元素之上。
  • onmouseout 鼠标从某元素移开。

5.键盘事件:

  • onkeydown 某个键盘按键被按下。
  • onkeyup 某个键盘按键被松开。
  • onkeypress 某个键盘按键被按下并松开。

6.选择和改变

  • onchange 域的内容被改变。
  • onselect 文本被选中。

7.表单事件:

  • onsubmit 确认按钮被点击。
  • onreset 重置按钮被点击。

 这里我们可以看出,JavaScript主要作用为编写事件处理程序,进行对事件的控制。

三、事件处理程序的调用

1、在JavaScript中调用:首先要获得处理对象的引用,再将执行处理的函数赋值给对应事件

<input name="bt_Save" type="button" value="保存">
var b_Save = document.getElementById("bt_Save");
b_Save.onclick = function ()//总感觉这个可以用lambda表达式
{
    alert("单击了保存按钮");
}

 在本例中,bt_Save为处理对象,所以其中包含了所有的js事件,如onclick,onkeyup等等。JavaScript中指定事件处理程序时,事件名必须小写,才能正确响应事件。

2、在HTML中调用;只要在HTML标记中添加相应的事件,并在其中指定要执行的代码或函数名

    <input name="bt_Save" type="button" value="保存" onclick="alert('单击了保存按钮')">

在HTML中调用,内层字符串要用''(单引号)???未知

五、常用对象

一、window对象

window对象即浏览器窗口对象,是一个全局对象,是所有对象的顶级对象。不需要使用new关键字来实例化对象,直接使用“对象名.成员”来访问属性或方法。

1、window对象的属性

 Window对象是是其他对象的父对象,所以在js中允许省略window对象名称。

例:window.alert()        可以写为alert()

对于上述例子:

var b_Save = document.getElementById("bt_Save");

 其中省略了window对象名,document属性下具有getElementById()方法,作用为返回指定ID的引用,若补全代码应为  var b_Save = window.document.getElementById("bt_Save");

window常用属性如下:

 2、window对象的常用方法

 3、open方法

open方法作用为打开一个新的链接,并在该窗口中装载指定的URL地址的网页

语法格式:   

                windowVar = window.open(url,windowname[,location]);

参数说明:

  • windowVar:当前打开窗口的句柄,若open函数执行成功则windowVar值为一个window                       对象的句柄,否则返回为一个空值
  • url:目标窗口的url,若url为空字符串,则打开一个空白窗口,允许用write()创建html           
  • windowname :新窗口的名称,可作为<a><form>的target属性值,如果该参数指定了一个已经存在的窗口,则该函数返回对指定窗口的引用
  • lacation:对窗口属性进行设置,可选参数如下:

例如: window_New = window.open("java_text.html","test","height=100,width=100");

4、close方法

window.close()作用为关闭当前页面

实例3:实现用户注册页面,其中包含用户名,密码,确认密码,提交、重置、关闭按钮。

功能:当用户点击“关闭”时,关闭当前浏览器。

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="../CSS_Src/enroll_User_css.css">
</head>
<body>
<form id="enroll_User" name="form_4" method="post"action="" >
    <label></label>
    <table id="user">
        <tr>
            <td id="user_td" align="right">用户名: </td>
            <td style="width: 233px " align="left"><label for="textField"></label>
                <input type="text" name="textField" id="textField"></td>
        </tr>
        <tr>
            <td align="right">密码:</td>
            <td align="left"><label for="textFiled2"></label>
                <input type="password" name="textField2" id="textFiled2"></td>
        </tr>
        <tr>
            <td align="right">确认密码:</td>
            <td align="left"><label for="textFiled3"></label>
                <input type="password" name="textField3" id="textFiled3"></td>
        </tr>
<!--定义按钮-->
        <tr>
            <td colspan="2" align="center">
                <lable>
                    <input type="submit" name="Submit" value="提交" onclick="">
                </lable>
                <label>
                    <input type="reset" name="Submit2" value="重置" />
                </label>
                <label>
                    <input type="button" name="Submit3" value="关闭" onclick="close_Window()">
                </label>
        </tr>
    </table>
    <label>
        <br/>
    </label>
</form>
<script>
    function close_Window()
    {
        window.confirm("关闭窗口");
        windowVar = window.close();
    }
</script>
</body>
</html>

 

 

并没有达到预期目标,原因:heigth等属性,在html5中已废弃。自己也没有深入学习html ,注意:confirm函数有返回值为布尔型。

 后记:

说实在的,现在所走的每一步都是为了将来的就业,时间紧迫暂时只能略学,掌握基本知识,倘若有足够的时间,我更愿意去深入学习js等知识,不知道将来的就业形势又会变成什么样子?

学海无涯.......

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

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

相关文章

溯源取证-Linux内存取证 中难度篇

原谅我这么晚才出来文章&#xff0c;因为最近忙着录课&#xff0c;至于为啥没有基础篇&#xff0c;是因为靶场里没看见&#xff0c;哈哈 这个也是研究了好几个晚上才出来的东西&#xff0c;此处场景为linux环境下的rootkit病毒&#xff0c;我们通过这篇文章可以通过内存取证发…

Jmeter测试dubbo服务

1、什么是dubbo接口 Dubbo 接口是阿里巴巴开源的致力于提供高性能和透明化的RPC远程服务调用方案&#xff0c;以及SOA服务治理方案&#xff0c;dubbo框架告别了传统的web service的服务模式&#xff0c;进而改用provider和consumer模式进行服务。为什么是高性能的呢&#xff1f…

制作四个文件启动的镜像

一 环境搭建&#xff1a;vivado2018.3&#xff0c;petalinux2018.3&#xff0c; 1.petalinux环境设置 所使用的编译环境需要使用petalinux这个软件&#xff0c;《第五章Petalinux 的安装》里面的5.1-5.4。有详细的安装过程&#xff0c;按照第五章的顺序把环境搭建好。可以不装…

【PR 基础】新建序列

目录 一、新建序列 二、序列预设 三、设置 一、新建序列 在如下区域点击鼠标右键&#xff0c;选择 新建项目-》序列 或 点击工具栏中的文件-》新建-》序列 二、序列预设 &#xff08;1&#xff09;时基&#xff1a;就是指帧速率&#xff0c;也就是每秒播放帧的数量&#xf…

iOS Matter 操作证书签发方案

在 Matter 配网和操作中&#xff0c;为了信息交互的安全&#xff0c;在配网时&#xff0c;Commissioner自身需要完整的证书&#xff0c;同时需要向设备安装操作证书。 Matter 证书包含&#xff1a; RCA: 根证书 ICA: 中间证书&#xff0c;可选 NOC: 操作证书(注意有以下两种…

人工智能的前沿信息获取之使用文献数据库

人工智能的知识更新迭代非常迅速&#xff0c;因此对人工智能前沿的跟踪非常必要。本文主要介绍了使用文献数据库获取人工智能前沿信息的方法。 文献数据库是检索和下载论文的主要工具&#xff0c;对文献进行检索和下载的技巧在本科公共基础课《文献检索》或《信息检索》等类似…

家庭智能触摸面板开关一Homekit智能

触摸开关&#xff0c;即通过触摸方式控制的墙壁开关&#xff0c;其感官场景如同我们的触屏手机&#xff0c;只需手指轻轻一点即可达到控制电器的目的&#xff0c;随着人们生活品质的提高&#xff0c;触摸开关将逐渐将换代传统机械按键开关。 触摸开关控制原理 触摸开关我们把…

【ESP-IDF】介绍NVS

ESP-IDF是一款由乐鑫科技&#xff08;Espressif Systems&#xff09;开发的面向ESP32和ESP32-S系列芯片的开发框架&#xff0c;NVS&#xff08;Non-Volatile Storage&#xff09;是其中的一项功能。 NVS是一种用于在嵌入式系统中保存持久化数据的键值存储库。在ESP-IDF中&#…

虚拟化技术 — SR-IOV 单根 I/O 虚拟化

目录 文章目录 目录SR-IOVSR-IOV VEBSR-IOV VEPASR-IOV Multi-ChannelSR-IOV OvSSR-IOV 的应用使能 SR-IOV VFs挂在 VF 到 KVM 虚拟机中SR-IOV 的 NUMA 亲和性VF 的网络配置VFs Bonding SR-IOV 虚拟机的热迁移问题 SR-IOV 传统的 I/O 虚拟化方案需要 VMM 来捕获和模拟 VM 的 I…

400左右蓝牙耳机什么牌子音质好?400左右的无线蓝牙耳机推荐

过去几年苹果的AirPods深受大家欢迎&#xff0c;但要论最佳耳机&#xff0c;还要考虑佩戴类型&#xff0c;功能上又分降噪水平&#xff0c;甚至价格上也要实惠&#xff0c;毕竟对于不想太高预算来获得出色音质和舒适度的人来说&#xff0c;这也是他们心中的"最佳"产品…

Kubernetes那点事儿——调度策略

Kubernetes那点事儿——调度策略 前言一、静态Pod二、nodeSelector 节点选择器三、nodeName四、taint污点五、tolerations污点容忍六、容器资源限制七、nodeAffinity节点亲和性 前言 Kubernetes的强大之处离不开它的调度系统&#xff0c;它为Pod调度到某个Node上提供了多种方式…

Linux学习_设备树实现中断

Linux学习_设备树实现中断 中断层级结构设备树_中断控制器设备树_中断子节点驱动程序获取GPIO获取中断号申请中断中断处理函数 中断层级结构 就硬件而言&#xff0c;中断控制器指的就是GIC&#xff0c;但是实际在软件上&#xff0c;图中的GPIO等我们也称之为中断控制器。 外部…

[PyTorch]预训练权重的转换

众所周知&#xff0c;使用大量数据预训练后的骨干网络可以提升整个模型的泛化能力&#xff0c;而我们如果将网络的骨干网络替换后则不能直接使用原来的权重。这个项目的作用是在你替换骨干网络后可以将网络预训练权重一并“偷”过来。 下给结论&#xff1a;将DeeplabV3的骨干网…

详解 TCP(三次握手 + 四次挥手 + 滑动窗口 + 拥塞控制 + 和 UDP 做对比)

文章目录 1. TCP / IP五层模型和OSI七层模型1&#xff09;OSI七层模型2&#xff09;TCP/IP 五层模型 2. TCP和UDP1&#xff09; TCP首部结构2&#xff09;UDP首部结构3&#xff09;TCP和UDP的区别2.2 UDP和TCP对应的应用场景 3. TCP 建立连接时的三次握手1&#xff09;为什么需…

虚拟专用网VPN与网络地址转换NAT技术

1、专用网络或本地互联网 一方面现在随着个人电脑的增大&#xff0c;IP地址十分紧缺&#xff0c;所以如果为每一台电脑都分配个一个全球IP地址&#xff08;唯一的&#xff09;不太现实&#xff1b;另外一方面&#xff0c;很多机构&#xff08;比如大公司&#xff09;往往只需要…

阿里正式加入ChatGPT战局,“通义千问”上线后表现如何?

ChatGPT发布后&#xff0c;数月间全世界都对AI的能力有了新的认知。 ChatGPT掀起的战局&#xff0c;现在又多了一位选手了&#xff01; 阿里版类ChatGPT突然官宣正式对外开放企业邀测&#xff0c;由达摩院开发&#xff0c;名为“通义千问” 顾名思义&#xff0c;阿里正式加入Ch…

java实现钉钉自定义机器人发送消息

钉钉作为现在很多企业的移动办公平台&#xff0c;具有很多很强大的功能&#xff0c;可以帮助我们更加及时的发现问题&#xff0c;解决问题&#xff0c;今天我们做一个java实现钉钉自定义机器发送消息的功能。 首先&#xff0c;先放出官方文档地址&#xff1a;https://open.ding…

GIS在城市规划中的作用与应用

山海鲸可视化-GIS影像 简介 GIS&#xff08;地理信息系统&#xff09;是一种用于捕获、存储、管理、分析和显示地理空间数据的技术和工具。GIS可以用于各种领域&#xff0c;包括城市规划、土地管理、自然资源管理、公共安全、环境保护、气象预报、交通运输、农业、地质勘探、…

支持多模型数据分析探索的存算分离湖仓一体架构解析(上)

当企业需要建设独立的数据仓库系统来支撑BI和业务分析业务时&#xff0c;有了“数据湖数据仓库”的混合架构。但混合架构带来了更高的建设成本、管理成本和业务开发成本。随着大数据技术的发展&#xff0c;通过在数据湖层增加分布式事务、元数据管理、极致的SQL性能、SQL和数据…

Python实现哈里斯鹰优化算法(HHO)优化Catboost分类模型(CatBoostClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO)&#xff0c;该算法有较强的全…