JavaScipt基础学习(1)

news2024/11/17 6:49:53

1. JavaScript特点

  • JavaScript是脚本编写语言;
  • 所有主流浏览器都支持JavaScript;
  • JavaScript基于对象语言;
  • JavaScriptb变量类型是弱类型,没有如Java一样严格的数据类型;
  • 变量是弱类型的。因此定义变量时,只使用var运算符,就可以将变量初始化任意的值;
  • 每行结尾的分号可有可无(习惯是加上分号);
  • JavaScript大小写敏感。

2. JavaScript基本语法

JavaScript有自己的常量、变量、表达式、运算符、函数。
使用<script>标签在HTML网页中插入JavaScript代码。

    //1. function定义函数的关键字。
    //2. "函数名"你为函数取的名字。
    //3. "函数代码"替换为完成特定功能的代码。
    function 函数名()
    {
         函数代码;
    }

2.1 外部引用js

可以把HTML文件和JS代码分开,并单独创建一个JavaScript文件(简称JS文件),其文件后缀通常为.js,然后将JS代码直接写在JS文件中。

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <!-- 外部引用js -->
    <script src="script.js"></script>
</head>

<body>
   
</body>

</html>

2.2 常量和变量

变量

  • JavaScript声明变量使用var关键字
  • JavaScript不一定要声明变量,但为了维护方便建议声明变量;
  • 变量包括全局变量局部变量
  • 变量命名:字母、下划线或美元符号$开头;
  • 变量名不能使用JavaScript关键字;
  • 变量名建议有意义

常量

  • 命名规则同变量;
  • 常量值不能改变;
  • 使用const关键字
var student = "小文";
var number = 100;
var isRight = false;
var city = null;

const PI = 3.14;

2.3 数据类型

JavaScript数据类型

【补充】
1.Null表示没有、空的。 Null可以来清除内存中定义了的值。
2.Undefined表示定义了一个变量,但未给变量赋值。
3.NaN(Not a Number),既非数值,数值计算没有结果返回NaN。

使用Number()、parsetInt()、parseFloat()将非数值转换为数值:

        var a = Number("10");
        var b = parseInt("13",10);
        var c = parseFloat("10");
        var d = parseFloat("13.00");
        var e = parseFloat("13.10");
        var f = parseFloat("13.11");
        var g = parseFloat("34 45 66");
        console.log("a = " + a + " ,b = " + b + " ,c = " + c + ",d=" + d + ",e = " + e + " ,f = " + f + " ,g = " + g);


输出结果如下图:
非数值转换

2.4 表达式和运算符

算术运算符描述
+
-
*
/
%取模
++递加
递减
逻辑运算符描述
&&逻辑与
逻辑非

2.5 基本语句

  • 循环语句:for循环、while循环、do…while循环。
  • 条件语句:if…else语句。
  • 多分支选择语句:switch语句。
  • break语句:终止循环。
  • continue语句:只能用在循环结构中,调过循环中的一个迭代。

代码示例:

<script language="javascript">
        for (a = 10; a <= 15; a++) {
            if (a % 2 == 0) {  // 使用 if语句来控制图像的交叉显示
                document.write("<img src='img/flower1.jpg' width='200px'>");
            }
            else {
                document.write("<img src='img/flower2.jpg' width='200px'>");
            }
        }

		for (var a = 2; a <= 20; a++) {
            if (a == 16) {
                continue;//跳过打印a=16
            }
            if (a == 19) {
                break;//跳出循环
            }
            document.write("<p>a的值为" + a + "</p>")
        }
    </script>

2.6 JavaScript注释

单行注释

//定义变量
var a=null;

多行注释

/*
用来定义
多行注释
*/
var a = null;

2.7 JavaScript代码调试

使用console.log方法来调试代码:

console.log("a = " + a);

浏览器按F12键,或手动打开“开发者工具”选项,点击“控制台”。

在这里插入图片描述


3. JavaScript事件

常用事件:

  • onclick事件
  • onchange事件
  • onfocus事件
  • onblur事件
  • onmouseover事件
  • onmouseout事件
  • ondblclick事件

其他事件

事件触发理由
onabort图像加载被中断
onerror当加载文档或图像时发生某个错误
onkeydown某个键盘的键被按下
onkeypress某个键被按下或按住
onkeyup某个键盘的键被松开
onload页面或图像完成加载
onselect文本被选定
onunload用户退出页面

JavaScript事件还有其他,有兴趣请参考这里【JavaScript事件】。

部分事件示例代码:

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
        function showTip(){
            alert("输入内容")
        }
        function myFunction() {
            document.getElementById("demo").innerHTML = "Hello World";
        }
    </script>
</head>
<body>
    <div align="center">
        <!-- onclick事件 -->
        <input type="button" name="close" value="关闭当前页面" onclick="window.close()">
        <!-- onchange事件 -->
        <input type="text" onchange="showTip()">
        <!-- onfocus事件 和 onblur事件 -->
        <input type="text" placeholder="请填写姓名" onfocus="changecolor(this)" onblur="cancelcolor(this)"><br><br>
        <!-- onmouseover事件 和 onmouseout事件 -->
        <img src="img/img_0.jpg" alt="wuliuqi" onmouseover="bigImg(this)" onmouseout="normalImg(this)">
        <!-- ondblclick事件 -->
        <p ondblclick="myFunction()" class="btn">
            双击按钮,触发欢迎信息
        </p>
        <p id="demo"></p>
    </div>
</body>

</html>

4. HTML DOM对象

4.1 获取DOM对象

使用DOM元素对象可以获取DOM对象。获取DOM元素常用方法如下:

方法描述
getElementById()返回拥有指定id的第一个对象的引用
getElementsByClassName()返回文档中所有指定类名的元素集合
getElementsByName()返回带有指定名称的对象集合
getElementsByTagName返回带有指定元素名的对象集合
querySelector()返回文档中匹配指定的CSS选择器的第一元素
querySelectorAll()返回文档中匹配CSS选择器的所有元素节点列表

4.2 修改元素的属性

方法1

  • setAttribute():设置元素的属性
  • getAttribute():获取属性值
  • removeAttribute():删除属性

代码示例:

<!DOCTYPE html>

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div {
            background-color: palegreen;
            width: 200px;
            height: 200px;
            border: 2px solid #425006;
        }
    </style>
    <script>
        function getBoxAttr() {
            var divName=document.getElementsByTagName("div")[0];
            var attrValue = divName.getAttribute("id");
            console.log("attribute value = " + attrValue);
        }
        window.onload = getBoxAttr;
    </script>
</head>

<body>
    <div id="box"></div>

</body>

</html>

方法2

直接利用元素节点style对象修改

  • 获取CSS样式: 元素名.style.样式名
  • 设置CSS样式:元素名.style.样式名=样式值
  • 清除CSS样式:元素名.style = “”|null

代码示例:

<!DOCTYPE html>

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div {
            background-color: palegreen;
            width: 200px;
            height: 200px;
            border: 2px solid #425006;
        }
    </style>
    <script>
        function changeCSS() {
            var box = document.querySelector('.box');
            box.style.height = 300 + 'px';
            box.style.width = 300 + 'px';
            box.style.backgroundColor = 'red';
        }
        window.onload = changeCSS;

    </script>
</head>

<body>
    <div class="box"></div>
</body>
</html>

5. 浏览器其他内部对象

  • 浏览器对象navigator:提供有关浏览器的信息
  • 文档对象document:
  • 窗口对象windows:
  • 位置对象location:
  • 历史对象history:

5.1 navigator对象

存取浏览器相关信息。

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        document.write("浏览器名称:" + navigator.appName);
        document.write("浏览器语言:" + navigator.browserLanguage);
        document.write("浏览器平台和版本信息:" + navigator.appVersion);
        document.write("浏览器的次级版本:" + navigator.appMinorVersion);
        document.write("浏览器的代码名:" + navigator.appCodeName);
    </script>
</head>
<body>
    
</body>
</html>

【说明】
document.write();用于直接向HTML输出流写内容。即直接在网页中输出内容。

5.2 windows窗口对象

window表示浏览器窗口

代码示例:

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
		// alert方法
        function alarm() {
            alert("你好,这是一个警告框!");
        }
        // blur方法
        function test_blur() {
            blur();
        }
        // close方法
        function test_close(){
            close();
        }
        // confirm方法
        function test_confirm(){
            window.confirm("最近是不是有好消息?");
        }
        // Popup方法
        function test_popup(){
            window.createPopup();
        }
        // prompt方法
        function test_prompt(){
            window.prompt();
        }
    </script>
</head>
<body>
    <input type="button" onclick="alarm()" value="显示警告框">
    <input type="button" onclick="test_blur()" value="键盘焦点从顶层窗口移开">
    <input type="button" onclick="test_close()" value="关闭浏览器窗口">
    <input type="button" onclick="test_confirm()" value="带有消息的对话框">
    <input type="button" onclick="test_popup()" value="pop-up窗口">
    <input type="button" onclick="test_prompt()" value="显示可提示用户输入的对话框">
</body>
</html>

5.3 location对象

描述某一个窗口对象所打开的地址。

locatioin属性表

属性描述
hash设置或返回从#开始的URL
host设置或返回主机名和当前URL端口号
hostname设置或返回当前URL主机名
href设置或返回完整的URL
pathname设置或返回当前URL的路径部分
port设置或返回当前URL的端口号
protocol设置或返回当前URL的协议
search设置或返回从问好?开始的URL部分

location对象的方法

方法描述
assign()加载新的文档
reload()重新加载当前文档
replace()新文档替换当前文档

代码示例:

<!DOCTYPE html>

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
       
    </style>
    <script>
        //document.write(location.host);
        document.write(location.hostname);
        // document.write(location.href);
        // document.write(location.pathname);

		function newDoc(){
            window.location.assign("https://www.baidu.com")
        }
    </script>
</head>

<body>
   <input type="button" value="加载新文档" onclick="newDoc()">
</body>

</html>

5.4 history对象

history对象是浏览器的浏览历史。

history对象常用方法:

方法描述
back()后退,加载history列表前一个url
forward()前进,加载history列表下一个url
go()进入指定history列表内某个页面

代码示例:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <script>
        function goForward() {
            window.history.forward()
        }
        function back() {
            window.history.back()
        }
    </script>
</head>

<body>
    <input type="button" value="返回" onclick="back()">
    <input type="button" value="下一个" onclick="goForward()">
</body>

</html>

6. JavaScript转义字符

JavaScript常用转义字符:

转义字符描述
\b退格
\f换页
\r回车符
"双引号
\xnn十六进制代码nn表示的字符
\0nnn八进制代码nnn表示的字符
\n换行
\tTab符
单引号
\反斜杠
\unnnn十六进制代码nnnn表示的Unicode字符

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

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

相关文章

WindowsServer服务器系列:部署FTP文件服务

1、点击“开始”菜单&#xff0c;选择“服务器管理器” 2、在接下来弹出页面中选择“添加角色和功能” 3、接下来点击“下一步” 4、接下来选择“基于角色或基于功能的安装”并点击“下一步” 5、选择“从服务器池中选择服务器”并点击“下一步” 6、接下来选中“Web 服务器(II…

【数模比赛】2023美国大学生数学建模比赛(思路、代码......)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

虚拟存储管理(6)

虚拟存储管理 前面介绍的存储管理方案要求作业全部装入内存才可运行。但这会出现两种情况&#xff1a; 有的作业因太大&#xff0c;内存装不下而无法运行。系统中作业数太多&#xff0c;因系统容量有限只能让少数作业先运行。 1 局部性原理 定义&#xff1a; 程序执行时&a…

TCP网络编程中connect()、listen()和accept()三者之间的关系

基于 TCP 的网络编程开发分为服务器端和客户端两部分&#xff0c;常见的核心步骤和流程如下&#xff1a; connect()函数 对于客户端的 connect() 函数&#xff0c;该函数的功能为客户端主动连接服务器&#xff0c;建立连接是通过三次握手&#xff0c;而这个连接的过程是由内核…

LeetCode题目笔记——24. 两两交换链表中的节点

文章目录题目描述题目链接题目难度——中等方法一&#xff1a;迭代代码/C代码/python方法二&#xff1a;递归代码/C总结题目描述 或许这也是个经典的面试题&#xff0c;记录一手 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在…

模电学习6. 常用的三极管放大电路

模电学习6. 常用的三极管放大电路一、判断三极管的工作状态1. 正偏与反偏的概念2. 工作状态的简单判断二、三种重要的放大电路1. 共射电路2. 共集电极放大电路3. 共基极放大电路一、判断三极管的工作状态 1. 正偏与反偏的概念 晶体管分P区和N区&#xff0c; 当P区电压大于N区…

[设计模式] 建造者模式

文章目录什么是建造者模式建造者模式建造者模式中的角色UML类图代码实现建造者模式与工厂模式的区别什么是建造者模式 建造者模式(Builder Pattern)是一种创建型的设计模式&#xff0c;它将一个复杂对象的构建与它的表示分离&#xff0c;也就是复杂的构建隐藏起来&#xff0c;…

即时通讯系列-4-如何设计写扩散下的同步协议方案

1. 背景信息 上篇提到了, IM协议层是主要解决会话和消息的同步, 在实现上, 以推模式为主, 拉模式为辅. 本文Agenda: (How)如何同步(How)如何设计同步位点如何设计 Gap过大(SyncGapOverflow) 机制如何设计Ack机制总结 提示: 本系列文章不会单纯的给出结论, 希望能够分享的是&…

SpringCloud-Netflix学习笔记13——Zuul路由网关

什么是Zuul? Zuul包含了对请求的路由和过滤两个最主要的功能。 其中路由功能负责将外部请求转发到具体的微服务实例上&#xff0c;是实现外部访问统一入口的基础&#xff0c;而过滤器功能则负责对请求的处理过程进行干预&#xff0c;是实现请求校验&#xff0c;服务聚合等功能…

最详细教你注册 ChatGPT,不会来找我

超强人工智能 ChatGPT 震撼来袭&#xff0c;它是美国人工智能研究实验室 OpenAI 新推出的一种自然语言处理工具&#xff0c;不想来体验一下嘛&#xff01;最详细教程手把手教你注册&#xff0c;不会来找我&#xff01; 准备工作 一个可以科学上网的工具&#xff0c;提供非 Ch…

文献阅读笔记 # CodeBERT: A Pre-Trained Model for Programming and Natural Languages

《CodeBERT: A Pre-Trained Model for Programming and Natural Languages》EMNLP 2020 (CCF-B)作者主要是来自哈工大、中山大学的 MSRA 实习生和 MSRA、哈工大的研究员。资源&#xff1a;code | pdf相关资源&#xff1a;RoBERTa-base | CodeNN词汇&#xff1a; bimodal: 双模态…

嵌入式设备搭建NFS环境(服务器/客户端、源码下载编译、文件系统适配、内核适配)

1、什么是nfs (1)NFS(Network File System)是网络文件系统&#xff0c;能让使用者访问网络上别处的文件就像在使用自己的计算机一样&#xff1b; (2)NFS是基于UDP/IP协议的应用&#xff0c;其实现主要是采用远程过程调用RPC机制&#xff0c;RPC提供了一组与机器、操作系统以及低…

CAS详解.

CAS这个机制就给实现线程安全版本的代码&#xff0c;提供了一个新的思路&#xff0c;之前通过加锁&#xff0c;把多个指令打包成整体&#xff0c;来实现线程安全。现在就可以考虑直接基与CAS来实现一些修改操作&#xff0c;也能保证线程安全&#xff08;不需要加锁&#xff09;…

OpenAi-chatgpt注册保姆级全网最详细注册教程2023年2月最新-

废话就不多说了&#xff0c;说多了浪费各位师傅的时间&#xff01;直接冲&#xff0c;在开始之前需要科学上网&#xff0c;就没其他要求了 1、访问https://chat.openai.com/auth/login 2、点击sign up,输入账号密码&#xff0c;点击Continue 3、之后会来到登陆页面&#xff0…

Oracle Dataguard(主库为 Oracle rac 集群)配置教程(03)—— 创建 dataguard 数据库之前的准备工作

Oracle Dataguard&#xff08;主库为 Oracle rac 集群&#xff09;配置教程&#xff08;03&#xff09;—— 创建 dataguard 数据库之前的准备工作 / 本专栏详细讲解 Oracle Dataguard&#xff08;Oracle 版本为11g&#xff0c;主库为双节点 Oracle rac 集群&#xff09;的配置…

云计算|OpenStack|错误记录和解决方案(不定时更新)

前言&#xff1a; openstack的部署和使用是难度比较大的&#xff0c;难免会出现各种各样的问题&#xff0c;因此&#xff0c;本文将把一些在部署和使用openstack社区版时出现的错误做一个记录&#xff0c;并就每一个错误分析和解决问题。&#xff08;尽量记录比较经典的错误&a…

微搭低代码从入门到精通10-tab栏组件

在小程序中&#xff0c;如果你的页面是由多个组成的&#xff0c;往往涉及到页面切换的问题。那如何引导用户访问不同的页面呢&#xff1f;微搭中提供了tab栏组件来实现这个功能&#xff0c;本篇我们介绍一下这个组件的使用方法。 首先呢打开我们的应用编辑器&#xff0c;在左侧…

OJ刷题Day2 · 判断根结点是否等于子结点之和 · 删除有序数组中的重复项 · 合并两个有序链表 · 数组中的第K个最大元素(中等题)

一、判断根结点是否等于子结点之和二、删除有序数组中的重复项三、合并两个有序链表四、数组中的第K个最大元素&#xff08;中等题&#xff09;一、判断根结点是否等于子结点之和 给你一个 二叉树 的根结点 root&#xff0c;该二叉树由恰好 3 个结点组成&#xff1a;根结点、左…

SpringBoot + kotlin/java + Mybatis-Plus +Sqlite + Gradle多模块项目

前言 我自己的业务项目&#xff0c;先用kotlinspringboot 搭建&#xff0c; 发现gradle支持kts脚本&#xff0c;于是我就搭建试试。我就选用了最流行的Sqlite内嵌数据库,虽然H2也不错&#xff0c;但是Sqlite才是最流行的。orm框架我还是选择了Mybatis-Plus &#xff0c;为此中…

Spring Boot的创建和使用

目录 一、Spring Boot介绍 1.1 Spring Boot 是什么 1.2 Spring Boot的优点 二、Spring Boot 项目的创建 2.1 使用idea创建 2.1.1 安装Spring Boot Helper插件 2.1.2 创建 Spring Boot 项目 2.1.3 验证项目是否创建成功 2.2 使用网页创建 三、输出 hello world 一、S…