JavaScript-上篇

 JS 入门

JS概述        

        JavaScript(简称JS)是一种高层次、解释型的编程语言,最初由布兰登·艾奇(Brendan Eich)于1995年创建,并首次出现在网景浏览器中。JS的设计初衷是为Web页面提供动态交互功能,因此与HTML和CSS一起构成了Web的三大核心技术。随着时间的推移,JavaScript不断发展,成为如今最流行的编程语言之一。

ECMA

        1997年,JavaScript正式通过ECMA-262标准化,成为ECMAScript(简称ES)。ECMAScript是一个基于JavaScript的规范,旨在统一和规范不同的JavaScript实现。此后,JavaScript的发展就与ECMAScript版本紧密相连,每个新版本都引入了新的特性和功能。目前流行的是ES6,也就是2015年发布的版本,也是大多数企业采用的。

Java与JS

        Java与JavaScript虽然名字相似,但它们是两种不同的语言。Java是一种编译型的静态语言,主要用于开发企业级应用和移动应用,而JavaScript是一种动态语言,主要用于在网页中实现交互效果。两者之间并没有直接的关系,但因为Java在90年代的受欢迎程度,使得JavaScript的命名受到了影响。

Web工作关系

        作为一个后端开发者,我们也是需要简单学习一下前端的知识,目前大多数企业都是采用前后端分离开发,我们应该重点学习后端部分。

 JavaScript的引入方式

JavaScript可以通过两种主要方式引入到HTML文档中:

1.内联引入

        将JavaScript代码直接嵌入到HTML文件中,通常放置在<script>标签内。

2.外部引入

        将JavaScript代码写入外部文件中,然后在HTML中引入。这样做可以提高代码的复用性和维护性。

/*三种输出方式  */window.alert('HELLo!');//网页弹窗document.write('HELLo');//写入html中console.log('hello'); //浏览器控制台输出{/* 变量 */var a = 20;  //var是 variable的缩写a = '张三';/* JS大部分语法与Java类似,是弱类型的语言,因此类型不同也可以对同一变量赋值 var关键字定义变量的特点特点1.var定义出来的是全局变量特点2.可以重复定义变量名*/}{let x = 20;alert(x);/* let是ES6中引入的,let用法与var类似都是用来定义变量的1.let定义的是局部变量2.let不能重复定义变量名*/ }/* ES6还引入了 const 关键字,定义只读变量 */
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script src="./JS_code/demo1.js"></script><title>js基础语法</title>
</head>
<body><!-- JS,跨平台、面向对象的脚本语言 --><script>/* js有两种引入方式 */</script></body>
</html>

JavaScript基础语法

1. 输出方式

JavaScript提供了3种方式来输出内容:

alert():弹出警告框,显示信息。

alert("Hello, World!");

console.log():在浏览器的控制台输出信息,适合调试使用。

console.log("这是一个调试信息");

document.write():直接在HTML文档中写入内容,通常不推荐在页面加载之后使用。

document.write("这是一段文本");

2. 变量

JavaScript使用varletconst声明变量:

  • var:用于声明可变变量,作用域为函数或全局。
  • let:用于声明块级作用域的变量。
  • const:用于声明常量,一旦赋值后不可修改。
/*三种输出方式  */window.alert('HELLo!');//网页弹窗document.write('HELLo');//写入html中console.log('hello'); //浏览器控制台输出{/* 变量 */var a = 20;  //var是 variable的缩写a = '张三';/* JS大部分语法与Java类似,是弱类型的语言,因此类型不同也可以对同一变量赋值 var关键字定义变量的特点特点1.var定义出来的是全局变量特点2.可以重复定义变量名*/}{let x = 20;alert(x);/* let是ES6中引入的,let用法与var类似都是用来定义变量的1.let定义的是局部变量2.let不能重复定义变量名*/ }/* ES6还引入了 const 关键字,定义只读变量 */

3. 运算符与数据类型

JavaScript的运算符与Java种类似,有稍微不同

可以看到只是多了一个  ===    ,那么 ===  和  ==  有什么区别呢?

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS运算符</title>
</head>
<body><script>// JS运算符与Java运算符大致相同,但也有一些差异。/* ==  与 === 区别:1. == 运算符比较两个值是否相等,不论数据类型是否相同,如果值相等,则返回true,否则返回false。2. === 运算符比较两个值是否相等,且数据类型也相同,如果值相等且数据类型相同,则返回true,否则返回false。*/{//转换为数字类型alert(parseInt('12A56'));//12alert(parseInt('A56'));//NaN}{//转换为boolean类型if(-1)    alert('只有0和NaN才为false,其他值都为true');//数字类型转换为boolean类型if("")    alert('空字符串转换为false,其他值都为true');//字符串类型转换为boolean类型if(" ")   alert('空格也是false');if(null)  alert('null转换为false');if(undefined)  alert('undefined转换为false');}</script></body>
</html>

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS数据类型</title>
</head>
<body><script>// JS 基本数据类型alert(typeof 8);//numberalert(typeof 3.14);//numberalert(typeof true);//booleanalert(typeof false);//booleanalert(typeof "HEllo!");//stringalert(typeof 'A');//stringalert(typeof null);//objectvar a;alert(typeof a);//未初始化会被归为,undefined</script></body>
</html>

        JS是一种跨平台、面向对象的脚本语言,有了Java的基础,我们学习起来会非常轻松,下面是JS的基本数据类型。

4. 流程控制

JS流程控制与Java基本一致,我就不过多赘述了

JS函数

        函数的定义与调用也非常简单,由于JS是弱类型的语言,可以不需要定义返回类型,不需要定义参数类型

        主要有两种方式,通过 function 关键字来定义

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS函数</title>
</head>
<body><script>// 函数定义function add(a, b) {return a + b;}var add2 = function(a, b) {return a + b;}// 函数调用var result = add(10, 20);console.log(result);alert(add2(10, 20));</script></body>
</html>

总结

        JavaScript作为Web开发的重要工具,通过不断的演进与扩展,已经成为现代应用开发中不可或缺的一部分。了解其基本语法、运算符、引入方式和流程控制等基础知识,是学习和使用JavaScript的基础。希望对你有所帮助……

        接着我会更新JS的下篇,点赞支持一下吧……

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

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

相关文章

Leetcode - 140双周赛

目录 一&#xff0c;3300. 替换为数位和以后的最小元素 二&#xff0c;3301. 高度互不相同的最大塔高和 三&#xff0c;3302. 字典序最小的合法序列 四&#xff0c;3303. 第一个几乎相等子字符串的下标 一&#xff0c;3300. 替换为数位和以后的最小元素 本题直接暴力求解&a…

【hot100-java】【将有序数组转换为二叉搜索树】

二叉树篇 BST树 递归直接实现。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNo…

wpf实现新用户页面引导

第一步 第二部 部分代码: private void show(int xh, FrameworkElement fe, string con, Visibility vis Visibility.Visible) {Point point fe.TransformToAncestor(Window.GetWindow(fe)).Transform(new Point(0, 0));//获取控件坐标点RectangleGeometry rg new Rectangl…

Deathnote解题过程

主机扫描&#xff0c;发现192.168.1.194 arp-scan -l 端口扫描&#xff0c;发现80和22端口 nmap -sS 192.168.1.194 访问80端口发现自动跳转到http://deathnote.vuln/wordpress添加绑定地址就可以访问了 vim /etc/hosts 192.168.1.194 deathnote.vuln 访问发现并没有什么东西…

无人值守安装文件

一般配合BypassUAC 原理 一些 windows 无人值守安装文件中含有用户的明文或 base64 编码后的密文。 无人值守安装文件中的密码不一定是管理员密码&#xff0c;它也可能是普通用户的密码或者服务账户的密码。 不过&#xff0c;在无人值守文件&#xff08;如 sysprep.xml 或 …

11.数据结构与算法-线性表的案例分析与实现

案例2.1-一元多项式的运算 案例2.2-稀疏多项式的计算 图书信息管理系统

2-112基于matlab的协同干扰功率分配模型

基于matlab的协同干扰功率分配模型&#xff0c;带操作界面的功率分配GUI&#xff0c;可以实现对已有功率的分配优化&#xff0c;可以手动输入参数值。4个干扰山区分二批总干扰功率&#xff0c;每个扇区包括威胁总系数、综合压制概率、目标函数增量等。程序已调通&#xff0c;可…

NVIDIA NVLink-C2C

NVIDIA NVLink-C2C 文章目录 前言一、介绍1. 用于定制芯片集成的超快芯片互连技术2. 构建半定制芯片设计3. 使用 NVLink-C2C 技术的产品 二、NVLink-C2C 技术优势1. 高带宽2. 低延迟3. 低功率和高密度4. 行业标准协议 前言 将 NVLink 扩展至芯片级集成 一、介绍 1. 用于定制芯…

【Java的SPI机制】Java SPI机制:实现灵活的服务扩展

在Java开发中&#xff0c;SPI&#xff08;Service Provider Interface&#xff0c;服务提供者接口&#xff09;机制是一种重要的设计模式&#xff0c;它允许在运行时动态地插入或更换组件实现&#xff0c;从而实现框架或库的扩展点。本文将深入浅出地介绍Java SPI机制&#xff…

Linux驱动开发(速记版)--设备模型

第八十章 设备模型基本框架-kobject 和 kset 80.1 什么是设备模型 设备模型使Linux内核处理复杂设备更高效。 字符设备驱动适用于简单设备&#xff0c;但对于电源管理和热插拔&#xff0c;不够灵活。 设备模型允许开发人员以高级方式描述硬件及关系&#xff0c;提供API处理设备…

kaggle实战3RossmanStore商店销售额预测XgBoost解决回归问题案例1

kaggle实战2信用卡反欺诈逻辑回归模型案例1 数据集下载地址 https://download.csdn.net/download/AnalogElectronic/89844637 https://tianchi.aliyun.com/dataset/89785 加载数据 #预测销售额 回归问题 import numpy as np import pandas as pd import matplotlib.pyplot a…

Pikachu-Unsafe FileUpload-客户端check

上传图片&#xff0c;点击查看页面的源码&#xff0c; 可以看到页面的文件名校验是放在前端的&#xff1b;而且也没有发起网络请求&#xff1b; 所以&#xff0c;可以通过直接修改前端代码&#xff0c;删除 checkFileExt(this.value) 这部分&#xff1b; 又或者先把文件名改成…

GS-SLAM论文阅读笔记-MGSO

前言 MGSO首字母缩略词是直接稀疏里程计(DSO)&#xff0c;我们建立的光度SLAM系统和高斯飞溅(GS)的混合。这应该是第一个前端用DSO的高斯SLAM&#xff0c;不知道这个系统的组合能不能打得过ORB-SLAM3&#xff0c;以及对DSO会做出怎么样的改进以适应高斯地图&#xff0c;接下来…

随笔(四)——代码优化

文章目录 前言1.原本代码2.新增逻辑3.优化逻辑 前言 原逻辑&#xff1a;后端data数据中返回数组&#xff0c;数组中有两个对象&#xff0c;一个是属性指标&#xff0c;一个是应用指标&#xff0c;根据这两个指标展示不同的多选框 1.原本代码 getIndicatorRange(indexReportLi…

cherry-markdown开源markdown组件详细使用教程

文章目录 前言开发定位目标调研技术方案前提工作量安排数据库表设计实现步骤1、引入依赖2、实现cherry-markdown的vue组件&#xff08;修改上传接口路径&#xff09;3、支持draw.io组件4、支持展示悬浮目录toc前端使用&#xff1a;编辑状态使用cherry-markdown的vue组件前端使用…

【AUTOSAR 基础软件】COM模块详解(通信)

文章包含了AUTOSAR基础软件&#xff08;BSW&#xff09;中COM模块相关的内容详解。本文从AUTOSAR规范解析&#xff0c;ISOLAR-AB配置以及模块相关代码分析三个维度来帮读者清晰的认识和了解COM这一基础软件模块。文中涉及的ISOLAR-AB配置以及模块相关代码都是依托于ETAS提供的工…

Pikachu-Unsafe Fileupload-服务端check

MIME MIME是Multipurpose Internet Mail Extensions &#xff08;多用途互联网邮件扩展类型&#xff09;的缩写&#xff0c;用来表示文件、文档、或字节流的性质和格式。是设定某种扩展名的文件用一种应用程序来打开的方式类型&#xff0c;当该扩展名文件被访问的时候&#xff…

CNN模型对CIFAR-10中的图像进行分类

代码功能 这段代码展示了如何使用 Keras 和 TensorFlow 构建一个卷积神经网络&#xff08;CNN&#xff09;模型&#xff0c;用于对 CIFAR-10 数据集中的图像进行分类。主要功能包括&#xff1a; 加载数据&#xff1a;从 CIFAR-10 数据集加载训练和测试图像。 数据预处理&#…

不只是前端,后端、产品和测试也需要了解的浏览器知识(二)

目录标题 一、业务系统呈现给用户的节点1. 输入 URL 并解析1.1 用户输入 URL 并按下回车键1.2 浏览器解析 URL1.3 DNS 解析 2. 建立连接、发送请求并接收响应2.1 建立 TCP 连接2.2 发送 HTTP 请求2.3 服务器处理请求2.4 发送 HTTP 响应2.5 浏览器接收响应 3. 解析和加载资源、渲…

【Android】设备操作

本文介绍App开发常用的一些设备操作&#xff0c;主要包括如何使用摄像头进行拍照、如何使用麦克风进行录音并结合摄像头进行录像、如何播放录制好的音频和视频、如何使用常见传感器实现业务功能、如何使用定位功能获取位置信息、如何利用短距离通信技术实现物联网等。 摄像头 …