JavaScript基础入门全解析(上)

news2024/11/20 7:17:58

JavaScript基础语法

什么是JavaScript(简称js)

1.首先了解前端页面的组成(前端页面的三层结构)

●HTML 表示了你的页面内有什么,组成页面的骨架 (结构层)
●CSS 表示了你的页面中每一个内容是什么样子的(样式层)
●JavaScript(简称js) 表示了你的页面中每一个内容如何发生变化, 有什么行为内容(行为层)

2.JavaScript

是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。

JavaScript的组成

1.ECMASCRIPT: 定义了javascript的语法规范,描述了语言的基本语法和数据类型
2.BOM (Browser Object Model): 浏览器对象模型

有一套成熟的可以操作浏览器的 API,通过 BOM 可以操作浏览器。比如: 弹出框、浏览器跳转、获取分辨率等

3.DOM (Document Object Model): 文档对象模型

有一套成熟的可以操作页面元素的 API,通过 DOM 可以操作页面中的元素。比如: 增加个 div,减少个 div,给 div 换个位置等

在这里插入图片描述

总结: JS 就是通过固定的语法去操作 浏览器 和 标签结构 来实现网页上的各种效果

JavaScript的执行环境

JavaScript 程序不能独立运行,它需要被嵌入 HTML 中,然后浏览器才能执行 JavaScript 代码

JavaScript代码的书写位置

和 css 一样,我们的 js 也可以有多种方式书写在页面上让其生效
●js 也有多种方式书写,分为 行内式, 内嵌式,外链式

第一段 JS 代码

在开始之前, 我们先来学习第一段 js 代码

alert("hello world")

作用 : 在浏览器出现一个弹出框, 弹出框内显示的内容就是小括号内书写的文本
注意 : 小括号内的内容如果不是纯数字内容, 需要被引号包裹(单引号或双引号都可以)

行内式 JS 代码(不推荐)

a标签

●因为a标签有自己的跳转行为,这个是这个标签本身就有的,当我们点击的时候会自动跳转到指定的页面
●我们只要在a标签的herf属性的位置写上javascript:;就不会跳转
●我们在冒号和分号之间写上js代码,就会执行我们写的这个js代码


<!-- 写在 a 标签的 href 属性上 -->
<a href="javascript:alert('hello world');">点击一下试试</a>

非a标签

●如果是非a标签,本身不具备这个跳转的能力,我们就需要认为的赋予它这个能力
●先学第一个能力,onclick,这是一个点击的行为
●在值的位置, 直接书写 js 代码就行, 不需要 javascript:; 了
●写在标签上的 js 代码需要依靠事件(行为)来触发

<!-- 写在其他元素上 -->
<div onclick="alert('我是一个弹出层')">点一下试试看</div>

<!--
注:onclick 是一个事件(点击事件),当点击元素的时候执行后面的 js 代码
-->

内嵌式 JS 代码(不推荐)

内嵌式的 js 代码会在页面打开的时候直接触发

<!-- 在 html 页面书写一个 script 标签,标签内部书写 js 代码 -->
<script type="text/javascript">
    alert('我是一个弹出层')
</script>

<!--
    注:script 标签可以放在 head 里面也可以放在 body 里面
-->

注意 :

1.script 标签对内的代码不需要任何行为, 打开页面就会执行

2.script 标签对原则上可以书写在页面的任意位置

●推荐放在 head 标签的末尾或者 body 标签的末尾

●目前我们推荐放在 body 的末尾

3.一个页面原则上可以书写任意多个 script 标签

●会按照从上到下的顺序依次执行每一个 script 标签中的代码

外链式 JS 代码(推荐)

外链式代码是书写在一个 .js 的文件内
外链式 js 代码只要引入到了 html 页面中,就会在页面打开的时候直接触发(解析)
新建一个 .js 后缀的文件,在文件内书写 js 代码,把写好的 js 文件引入 html 页面

<!-- 我是一个 html 文件 -->

<!-- 通过 script 标签的 src 属性,把写好的 js 文件引入页面 -->
<script src="index.js"></script>

<!-- 一个页面可以引入多个 js 文件 -->
<script src="index1.js"></script>
<script src="index2.js"></script>
<script src="index3.js"></script>

注意 :

1.外链式 js 代码不需要任何行为, 打开页面就会执行

2.script 标签对原则上可以书写在页面的任意位置

●推荐放在 head 的末尾或者 body 的末尾

●目前推荐放在 body 的末尾

3.一个页面可以书写任意多个 script 标签

●会按照从上到下的顺序依次执行每一个 script 标签

4.一个 script 标签当你书写了 src 属性以后, 表示你要把他当做外链式使用

●那么此时就不能在当做内嵌式使用了, 写在标签对内的内容没有意义了

●只要你写了 src 属性, 不管值的位置是否书写地址, 内嵌式都没有意义了

5.一个页面中可以同时存在外链式和行内式,执行的顺序还是按照你script标签的书写位置先关,写在上面的先执行

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript 基础 - 引入方式</title>
</head>
<body>
  <!-- 外联形式:通过 script 的 src 属性引入独立的 .js 文件 -->
  <script src="demo.js">
    // 此处的代码会被忽略掉!!!!
    // 不管你有没有写demo.js。
    // 只要看到 src 属性浏览器就会当做外链式来解析。
    // 你写在 script 标签中的代码就不起作用了
      alert(千锋欢迎您);
  </script>
</body>
</html>

JS 中的注释

学习一个语言, 先学习一个语言的注释, 因为注释是给我们自己看的, 也是给开发人员看的。写好一个注释, 有利于我们以后阅读代码

JavaScript 支持两种形式注释语法:单行注释、多行注释

单行注释

●一般就是用来描述下面一行代码的作用
●可以直接写两个 / ,也可以按 ctrl + /

<!DOCTYPE html>
<html lang="en">
<head>
    ...
    <title>基础-注释</title>
</head>
<body>
    <script>
    // 这种是单行注释的语法
    // 一次只能注释一行
    // 可以重复注释
    alert('嗨,欢迎来千锋学习前端技术!');
    </script>
</body>
</html>

多行注释

●一般用来写一大段话,或者注释一段代码
●可以直接写 /* */ 然后在两个星号中间写注释
○各个编辑器的快捷键不一样,vscode 是 Alt + shift + a

<!DOCTYPE html>
<html lang="en">
<head>
    ...
    <title>基础-注释</title>
</head>
<body>
    <script>
        /*
            这是多行注释的语法
        */

        /*
            注释的代码不会执行
            alert('我是一个弹出层')
            alert('我是一个弹出层')
        */
        alert('欢迎您的到来')
    </script>
</body>
</html>

变量(重点)

●变量是计算机中用来存储数据的“容器”,它可以让计算机变得有记忆,通俗的理解变量就是使用【某个符号】来代表【某个具体的数值】(数据)
●变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
●也就是说,我们向内存中存储了一个数据,然后要给这个数据起一个名字,为了是我们以后再次找到他
●语法: var 变量名 = 值

定义(声明)变量及赋值

●声明(定义)变量有两部分构成:声明关键字、变量名(标识)
○var : 定义变量的关键字, 告诉浏览器, 我要定义一个变量了
○空格 : 必须写, 区分 关键 和 变量名 的
○变量名 : 你自己起的一个名字
○= : 赋值符号, 把右边的内容, 给到左边的变量
○值 : 你给你定义的变量赋的是什么值

<!DOCTYPE html>
<html lang="en">
<head>
    ...
    <title>基础-声明和赋值</title>
</head>
<body>
    <script>
        // 语法: var 名字 = 值
        var age = 18
        // var 关键字 所谓关键字是系统提供的专门用来声明(定义)变量的词语
        // age 即变量的名称,也叫标识符
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    ...
    <title>基础-声明和赋值</title>
</head>
<body>
    <script>
        //   1. 定义不赋值
        //     => 语法: var x
        //     => 准备一个变量, 以后使用, 暂时先不进行赋值
        var x
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    ...
    <title>基础-声明和赋值</title>
</head>
<body>
    <script>
        //   2. 定义并赋值
        //     => 语法: var x = 100
        //     => 准备一个变量的同时, 并且给他赋值为某一个数据
        var x = 100
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    ...
    <title>基础-声明和赋值</title>
</head>
<body>
    <script>
        //   3. 一次性定义多个变量不赋值
        //     => 语法: var x, x2, x3, x4, ...
        //     => 同时定义多个变量, 都不进行赋值
        var x, x1, x2
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    ...
    <title>基础-声明和赋值</title>
</head>
<body>
    <script>
        //   4. 一次性定义多个变量并赋值
        //     => 语法: var x = 10, x2 = 20, x3 = 30, ...
        var x = 10, x1 = 20, x2 = 30
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    ...
    <title>基础-声明和赋值</title>
</head>
<body>
    <script>
        //   5. 一次性定义多个变量, 有的赋值有的不赋值
        //     => 语法: var x = 10, x2, x3 = 30
        var x = 10, x1, x2 = 20
    </script>
</body>
</html>

变量命名规则和规范

●变量命名规则(你必须遵守)

1.一个变量只能由 字母(a-z, A-Z) 数字(0-9) 下划线(_) 美元符($) 组成
2.一个变量不能由 数字 开头
3.变量严格区分大小写
4.不要使用关键字或保留字

●变量命名规范(建议你遵守)

1.变量语义化
2.驼峰命名法
3.不使用中文

变量使用注意事项

●允许声明和赋值同时进行
●允许同时声明多个变量并赋值
●JavaScript 中内置的一些关键字不能被当做变量名
●一个变量名只能存储一个值
●当再次给一个变量赋值的时候,前面一次的值就没有了
●变量名称区分大小写(JS 严格区分大小写)

JS 的输入和输出

●输出和输入也可理解为人和计算机的交互,用户通过键盘、鼠标等向计算机输入信息,计算机处理后再展示结果给用户,这便是一次输入和输出的过程。
●举例说明:如按键盘上的方向键,向上/下键可以滚动页面,按向上/下键这个动作叫作输入,页面发生了滚动了这便叫输出。

输出

●以弹窗的形式展示给用户

// 以弹出层的形式展示给我们
alert('你好 世界')

●在页面中展示给用户

// 直接展示到我们的页面上
document.write('hello world')

●在控制台展示 一般用户看不到

// 在控制台展示出来
console.log('大家好');

输入

●用户选择框

// 这个选择框返回的是一布尔值
var name = confirm('你是程序员吗')
// 打印我们拿到的结果(也就是布尔值)
console.log(name)

●用户输入框

// 这个输入框返回的是用户输出的内容
var name = prompt('请输入你的姓名')
// 我们拿到的结果就是用户输入的结果
console.log(name)

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

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

相关文章

Linux系统中安装新版本nacos(centos7)

1. 背景需求 由于一些限制,在客户现场的Linux操作系统中,没有安装docker k8s等容器,无法直接使用镜像安装,而且客户要求只能在原始的操作系统中安装最新版的nacos,(为什么需要安装最新版的nacos,因为检测国网检测到之前版本的nacos有漏洞,需要安装新版的nacos). 2. 下载nacos…

Windows10+Cmake+VS2019编译opencv

主要参考&#xff1a;Windows10CmakeVS2019编译opencv&#xff08;超级详细&#xff09;_vs编译opencv_乐安世家的博客-CSDN博客 OpenCV&#xff1a;Releases - OpenCV 想直接简单使用的话&#xff0c;不需要自己编译&#xff0c;下载编译好的就可以 假如需要用到opencv-contr…

【Python入门第四十九天】Python丨NumPy 数组拆分

拆分 NumPy 数组 拆分是连接的反向操作。 连接&#xff08;Joining&#xff09;是将多个数组合并为一个&#xff0c;拆分&#xff08;Spliting&#xff09;将一个数组拆分为多个。 我们使用 array_split() 分割数组&#xff0c;将要分割的数组和分割数传递给它。 实例 将数…

Docker教程:如何将Helix QAC创建为一个容器并运行?

在这个Docker教程中&#xff0c;你将了解到如何将Helix QAC创建为一个容器化的镜像并运行。 Docker的基本定义是一个开源且流行的操作系统级虚拟化&#xff08;通常称为“容器化”&#xff09;技术&#xff0c;它是轻量级且可移植的&#xff0c;主要在Linux和Windows上运行。D…

Linux主机 SSH 通过密钥登录

我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器。但是&#xff0c;一般的密码方式登录&#xff0c;容易有密码被暴力破解的问题。所以&#xff0c;一般我们会将 SSH 的端口设置为默认的 22 以外的端口&#xff0c;或者禁用 root 账户登录。其实&#xff0c;有一个更…

换电脑 NoteExpress 数据备份迁移

前言 主要操作是跟着这篇博客做的&#xff1a;NoteExpress数据库备份和转移。但也有一些不一样的地方 旧电脑NoteExpress(NE)版本3.7&#xff0c;新电脑版本3.8 旧电脑 导出配置文件 桌面找到图标&#xff0c;打开位置&#xff0c;点击配置备份&#xff08;绿色的图标&#…

水库安全运行智慧管理平台解决方案筑牢防汛“安全墙”

解决方案 水库安全运行智慧管理系统解决方案&#xff0c;系统主要由降雨量监测站、水库水位监测站、大坝安全监测中的渗流量、渗流压力和变形监测站及视频和图像监测站等站点组成&#xff0c;同时建立规范、统一的监测平台&#xff0c;集数据传输、信息共享、数据储存于一体&a…

图解HTTP阅读笔记:第4章 返回结果的HTTP状态码

《图解HTTP》第四章读书笔记 图解HTTP第4章&#xff1a;返回结果的HTTP状态码4.1 状态码告知从服务器端返回的请求结果4.2 2XX成功4.2.1 200 OK4.2.2 204 No Content4.2.3 206 Parital Content4.3 3XX重定向4.3.1 301 Moved Permanently4.3.2 302 Found4.3.3 303 See Other4.3.…

服务(第三篇)Apache配置与应用

httpd服务支持的虚拟主机类型包括以下三种: 1.基于域名&#xff1a;为每个虚拟主机使用不同的域名&#xff0c;但是其对应的 IP 地址是相同的。 2.基于IP地址&#xff1a;为每个虚拟主机使用不同的域名&#xff0c;且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网…

Femto基站及其射频方案

关于部署3G femto基站 3GPP定义第三代移动通信的目的是要为客户提供全方位的移动多媒体体验。但很多条件下&#xff0c;这一目的并未实现&#xff0c;尤其是在边远地区或居民聚集区。 一个可行的解决方案是在家庭范围内部署无需宏node-B基站即可提供最大移动数据速率的家用基站…

26基于模型预测控制MPC的永磁同步电机MATLAB代码

资源地址&#xff1a; 基于模型预测控制&#xff08;MPC&#xff09;的永磁同步电机Matlab代码-电子商务文档类资源-CSDN文库 主要内容&#xff1a; 包含单电流环MPC仿真&#xff08;仅电流环使用MPC策略&#xff0c;速度环使用PI调节器&#xff09;、速度环和电流环MPC仿真…

C ++匿名函数:揭开C++ Lambda表达式的神秘面纱

潜意识编程&#xff1a;揭秘C Lambda表达式的神秘面纱 Subconscious Programming: Unveiling the Mystery of C Lambda Expressions 引言&#xff1a;Lambda表达式的魅力 (The Charm of C Lambda Expressions)Lambda表达式简介与基本概念 (Introduction and Basic Concepts of …

【Linux】浅析Input子系统

文章目录1. 框架1.1 数据结构1.2 evdev_handler1.3 evdev_init1.4 input_register_handler2. 应用如何打开节点并读取到事件数据2.1 evdev_fops2.2 evdev_open2.3 evdev_release2.4 evdev_read2.5 evdev_write2.6 evdev_poll2.7 evdev_fasync2.8 evdev_ioctl2.9 evdev_ioctl_co…

ADManager Plus:简化 Active Directory 管理的完美工具

在企业中&#xff0c;Active Directory&#xff08;AD&#xff09;是一个非常重要的组件&#xff0c;用于管理和控制所有计算机和用户的访问权限。然而&#xff0c;AD的管理和维护需要一定的技术能力和时间成本。为了简化这个过程&#xff0c;ManageEngine 推出了 ADManager Pl…

ASIC-WORLD Verilog(2)FPGA的设计流程

写在前面 在自己准备写一些简单的verilog教程之前&#xff0c;参考了许多资料----asic-world网站的这套verilog教程即是其一。这套教程写得极好&#xff0c;奈何没有中文&#xff0c;在下只好斗胆翻译过来&#xff08;加了自己的理解&#xff09;分享给大家。 这是网站原文&…

如何在 DevOps 中进行 API 全生命周期管理?

随着 DevOps 理念在中国企业当中的普及和发展&#xff0c;中国企业 DevOps 落地成熟度不断提升&#xff0c;根据中国信通院的数据已有近 6 成企业向全生命周期管理迈进。 而在研发全生命周期管理之中&#xff0c;API 管理的地位愈发显得重要。随着 API 数量的大幅增长&#xf…

针对电商物流网络包裹应急调运与结构优化问题的解题【思路数据代码详解】

文章目录C 题 电商物流网络包裹应急调运与结构优化问题解题思路数据进行预处理将数据转换为 stationary 数据底部C 题 电商物流网络包裹应急调运与结构优化问题 (赛题出来以后第一时间在CSDN分享&#xff0c;文章底部) 最新进度在文章最下方卡片&#xff0c;加入获取思路数据代…

【Spring Cloud Alibaba】4.创建服务消费者

文章目录简介开始搭建创建项目修改POM文件添加启动类添加配置项添加Controller添加配置文件启动项目测试访问Nacos访问接口查看端点检查简介 接下来我们创建一个服务消费者&#xff0c;本操作先要完成之前的步骤&#xff0c;详情请参照【Spring Cloud Alibaba】Spring Cloud A…

深度学习代码,对coco数据集evaluate时,spice评估总是报错,解决如下:

在跑evaluate.py时&#xff0c;发现bleu&#xff0c;METEOR&#xff0c;ROUGE_L都能成功&#xff0c;就是spice评估总是报错&#xff0c;我的报错内容如下&#xff1a; 就找了好久&#xff0c;也问了chatgpt啥的&#xff0c;尝试很很多&#xff0c;最终发现是java版本太高了&am…

数字化转型导师坚鹏:金融机构数据治理政策解读及问题解决之道

金融机构数据治理政策解读及问题解决之道课程背景&#xff1a; 很多金融机构存在以下问题&#xff1a; 不知道如何准确理解银保监会数据治理相关政策及要求&#xff1f; 不清楚如何有效解决监管数据治理常见问题及提升之道&#xff1f; 不清楚如何有效落实银保监会数据治理相…