【JavaWeb】JavaScript基础语法(上)

news2024/9/22 9:51:47

✨哈喽,进来的小伙伴们,你们好耶!✨

🛰️🛰️系列专栏:【JavaWeb】

✈️✈️本篇内容:JavaScript基础语法(上)!

🚀🚀代码托管平台github:JavaWeb代码存放仓库!

⛵⛵作者简介:一名双非本科大三在读的科班Java编程小白,道阻且长,星夜启程!

 哈喽,大家好,我是辰柒。通过前面三篇博客的学习,我们已经掌握了前端开发三剑客其中的两剑客,那么今天我们要学习的最后一剑客就是大家经常在耳边听到的JavaScript。

目录

灵魂拷问:JavaScript是什么?和Java有什么关系?

写一个最简单的hello world如何实现?

 JS的书写形式有哪些?

1、内嵌式

2、行内式

 3、外部式

 JS和用户交互的常用方式?

 认识JS的基础语法!

一、变量

什么是NaN?

 Boolean类型如何使用?

 JS中的比较相等是如何规定的?

 逻辑运算符讲解!

 JS中的数组是如何规定的?

1、数组创建的三种方式

2、打印数组

3、获取数组元素

神奇操作1:

 神奇操作2:

 数组的其他操作!


灵魂拷问:JavaScript是什么?和Java有什么关系?

首先,JavaScript是当下最流行的前端开发语言之一,是一个脚本语言, 通过解释器运行 ;主要在客户端(浏览器)上运行, 也可以基于 node.js 在服务器端运行;虽然JS主要用于前端开发,但是实际上也可以进行服务器开发/客户端程序的开发;

其次,JavaScript和Java没有半毛钱关系,纯粹就是为了蹭蹭Java的热度,你可以把二者的关系想象成雷锋和雷峰塔的关系一样!

认识JavaScript语法:

写一个最简单的hello world如何实现?

同样运行在浏览器中的内容也是离不开html的,那么JS的代码通常是嵌入到html中来编写。

<script>
    alert("hello world");
</script>

运行结果:

 JS的书写形式有哪些?

1、内嵌式

即把js写到script标签中,如上的hello world就是写在script标签中的。

2、行内式

即把js写到html内部。

<button onclick="alert('hello')">这是一个按钮</button>

运行结果:

 3、外部式

即把js写到一个单独的.js文件中;然后在html通过script来引入。

demo.js代码

alert('hello js外部式')

html代码

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

运行结果:

 JS和用户交互的常用方式?

刚才我们可以看到运行js结果都是一个弹窗的样式,那么能不能直接输出结果那种格式呢?答案是可以的!

这里我们会使用到一个方法叫做console.log,会把日志给输出到控制台上,这里的控制台指的是浏览器自己的控制台。

    <script>
        console.log("这是一个控制台代码");
    </script>

运行结果:

 认识JS的基础语法!

一、变量

变量我们在java已经十分熟悉了,那么在js中如何定义变量呢?

格式:var 变量名 = 初始值;

        var a = 1;//定义了一个常数1
        var str = "hello";//定义了一个字符串str
        var arr = [];//定义了一个空的数组

需要注意的是这里js不区分整数与浮点数;

' '  和 " "都可以表示字符串,二者没有区别;

变量可以不初始化,不初始化是一个特殊的值undefined。

变量的类型可以在运行的过程中,随着赋值而发生改变。

        var a = 1;
        a = "dodo";
        console.log(a);

运行结果:

 我们来看这段代码:

        {
            var a = 1;
        }
        console.log(a);

运行结果:

可以发现运行结果在括号之外,也就是作用域之外,仍然可以打印, 那么是不是有点违背我们正常的编程认识丫!确实这里var是比较老旧得版本, 现在更倾向于使用let来替代var。

        {
            let a = 1;
        }
        console.log(a);

运行结果:

什么是NaN?

NAN的意思就是当前的运算结果不是一个数字,即 not a number。

        console.log("hello"-10);

运行结果:

 若把减号换成+号就会出现字符串拼接的效果!

        console.log("hello"+10);

运行结果:

 求字符串长度:使用.length即可,注意和Java里面使用length()是不一样的,这里没有括号。

        let s1 = "heelo";
        console.log(s1.length);

运行结果:

 Boolean类型如何使用?

注意在js当中会把布尔类型当做0(false)和1(true)来处理。

        let a = true;
        console.log(a - 1);

运行结果:

 总结:

那么这种设定本身很不科学,若一个编程语言越支持隐式类型转换,则认为类型越弱;(C,JS,PHP等……)

反之,若一个编程语言越不支持隐式类似转换,则认为类型越强。(Java、Go、Python)

 JS中的比较相等是如何规定的?

==和!=  只是比较两个变量的值,而不比较两个变量的类型,如果两个变量能够通过隐式类型转换,那么认为此时也是相等的。

=== 和 !== 既需要比较变量的值,也需要比较类型,如果类型不相同,就直接认为不相等。

        let a = "100";
        let b = 100;
        console.log(a == b);
        console.log(a === b);

运行结果:

 逻辑运算符讲解!

JS中的 && 和 || 返回的是其中一个表达式。

比如: c = a || b ;

若a的值为真(非0),此时c的值就是表达式a的值;若a的值为假(0),此时c的值就是表达式b的值。

c = a && b 也是类似
如果 a 的值为假,此时 c的值, 就是 表达式 a 的值如果 a 的值,为真,此时 c 的值, 就是表达式 b 的值。

这说明这两种运算符即短路求值,若a已经确定了值,就不用再计算b了。

JS不区分整数和小数:

        console.log(1/2);

运行结果:

 JS中的数组是如何规定的?

1、数组创建的三种方式

        let array = new Array();
        let array1 = [];
        let array2 = [1,2,3,4];

注意js中的数组可以是不同的数据类型,比如:

        let array3 = [1,"hello",null,undefined];

那么在Java中是有不同类型的数组,但是在js中就只有一种数组。

2、打印数组

通过console.log即可打印数组。

3、获取数组元素

跟Java一样,通过下标来获取,下标也是从0开始的。但是这里需要注意的是,当我们越界访问数组中的元素时,数组并不会报错,而是会给出一个undefined。

        let array2 = new Array();
        array2 = [1,2,3,4];
        array2[100] = 66;
        console.log(array2);

运行结果:

 即数组长度变成了101,数组中的元素还是1,2,3,4,100,中间空了96个元素都是empty,即undefined。

神奇操作1:

     array2[-1] = 10;

运行结果:我们发现我们给出数组下标-1的元素给赋值为10,在结果中类似于java中的map键值对的形式,这里可以理解为这个-1是属性,属性的值为10。

 神奇操作2:

跟刚才一样,我们把数组下标给个字符串。

        array2["dudu"] = 30;

运行结果:即这个dudu就是给这个array对象,新增了一个属性,属性的名字是dudu,属性的值是30。

 数组的其他操作!

1、往数组中新增元素:push

2、删除数组中的元素:splice

用法非常简单,直接使用即可!

OK,今天的学习就到这里啦,我们下期继续讲解JavaScript后续用法!!

 

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

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

相关文章

ESP32设备驱动-TSL2561亮度传感器驱动

TSL2561亮度传感器驱动 1、TSL2561介绍 TSL2560 和 TSL2561 是第二代环境光传感器器件。每个都包含两个集成模数转换器 (ADC),用于集成来自两个光电二极管的电流。两个通道的整合同时发生。转换周期完成后,转换结果分别传送到通道 0 和通道 1 数据寄存器。传输是双缓冲的,…

【头歌】单链表的基本操作

单链表的基本操作第1关&#xff1a;单链表的插入操作任务描述本关任务&#xff1a;编写单链表的初始化、插入、遍历三个操作函数。相关知识链表是线性表的链式存储结构的别称&#xff0c;特点是以“指针”指示后继元素&#xff0c;因此线性表的元素可以存储在存储器中任意一组存…

Linux常用命令——speedtest-cli命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) speedtest-cli 命令行下测试服务器外网速度 补充说明 speedtest-cli是一个使用python编写的命令行脚本&#xff0c;通过调用speedtest.net测试上下行的接口来完成速度测试&#xff0c;最后我会测试运维生存时间…

YOLOV3 Pytorch版本代码解读

YOLOV3 Pytorch版本代码解读 代码与coco数据集关注wx公众号JokerTong回复yolov3即可获取 参考视频 YOLO系列算法 文章目录YOLOV3 Pytorch版本代码解读数据集准备与关键文件说明前提准备代码大致流程需要自行修改代码的部分项目代码解读一 数据与标签的读取二 模型构造convoluti…

数据库工具类的编写

package com.bjpowernode.jdbc.utils;import java.sql.*; import java.util.ResourceBundle;/*** 数据库工具类简化JDBC的代码编写。** 在同一个没有结束的程序中&#xff0c;DBUtil类只加载一次&#xff0c;加载一次以后&#xff0c;再次调用该类中的方法&#xff0c;本不会再…

基于Echarts构建大数据招聘岗位数据可视化大屏

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

SpringBoot 3.0.x使用SpringDoc

为什么使用SpringDoc 在Springfox3.0停更的两年里&#xff0c;SpringBoot进入3.0时代&#xff0c; SpringFox出现越来越多的问题&#xff0c;最为明显的就是解析器的问题&#xff0c;已经在上文 中解释清楚&#xff0c;这里就不再赘述。 SpringDoc是Spring官方推荐的API&#x…

Spring笔记上(基于注解开发)

一、第三方资源配置管理 以DataSource连接池对象为例&#xff0c;进行第三方资源配置管理。 1. 管理DataSource连接池对象 spring整合Druid、C3P0数据库连接池 1.1 管理Druid连接池 1、准备数据 create database if not exists spring_db character set utf8; use spring_db; …

二、python基础语法篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频&#xff1a;https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 一 、print 1. end 2. \t对齐 二、字面量 1. 字面量的含义 2. 常见的字面量类型 3. 如何基于print语句完成各类字面量的输出 三、 注释的分类 1. 单行注释 2. 多行注释 3. 注释的…

MXNet的Faster R-CNN(基于区域提议网络的实时目标检测)《9》

MXNet的Faster R-CNN(基于区域提议网络的实时目标检测)《1》&#xff1a;论文源地址&#xff0c;克隆MXNet版本的源码&#xff0c;安装环境与测试&#xff0c;以及对下载的源码的每个目录做什么用的&#xff0c;做个解释。 MXNet的Faster R-CNN(基于区域提议网络的实时目标检测…

【手写 Vue2.x 源码】第四十一篇 - 组件部分 - 生成组件的真实节点

一&#xff0c;前言 上篇&#xff0c;介绍了组件部分-组件的生命周期&#xff0c;主要涉及以下几部分&#xff1a; 本篇&#xff0c;组件部分-生成组件的真实节点&#xff1b; 二&#xff0c;生成组件的真实节点 1&#xff0c;前文回顾 前篇&#xff0c;在 createElement 方…

【剧前爆米花--爪哇岛寻宝】Java中有关异常类的详细讲解

作者&#xff1a;困了电视剧 专栏&#xff1a;《JavaSE语法与底层详解》 文章分布&#xff1a;这是一篇关于Java中异常类的文章&#xff0c;在本篇文章中详细讲解了异常的使用逻辑和底层的执行过程&#xff0c;如有疏漏&#xff0c;欢迎大佬指正&#xff01; 目录 异常的体系结…

<C++>哈希

文章目录1. unordered系列容器1.1 unordered_map1.1.1 unordered_map的文档介绍1.1.2 unordered_map的接口说明1.2 unordered_set2. 哈希概念3. 哈希冲突4. 哈希函数5. 哈希冲突解决5.1 闭散列5.1.1 线性探测5.1.2 二次探测5.2 开散列5.3 开散列与闭散列比较6. 模拟实现1. unor…

配置野火霸道V2环境

配置野火霸道V2环境野火霸道开发板学习笔记信息说明下载安装Keil5配置Keil以使用DAP下载器DAP下载器的使用使用串口下载程序安装USB转串口驱动CH340检查是否安装成功配置MCUISP软件野火霸道开发板学习笔记 信息说明 日期 : 2023-01-23开发板: 野火霸道V2芯片型号: STM32F103Z…

[Paper Reading] Towards Conversational Recommendation over Multi-Type Dialogs

[Paper Reading] Towards Conversational Recommendation over Multi-Type Dialogs 文章目录[Paper Reading] Towards Conversational Recommendation over Multi-Type Dialogs论文简介快速回顾论文&#xff08;借助scispace&#xff09;梳理一下文章内容&#xff08;参考百度N…

自动化将Gitee的仓库导入Github

自动化将Gitee的仓库导入Github准备工作获取方式gitee的授权码github授权码工具源码用法下载gitee所有仓库到本地下载并更新到github&#xff08;自动创建仓库&#xff09;写在最后本方法能实现自动创建仓库 脚本及用法放在文章最后了&#xff0c;需要的自取 转跳到结尾 准备工…

高性能 Java 框架。Solon v1.12.3 发布(春节前兮的最后更)

一个更现代感的 Java "生态型"应用开发框架&#xff1a;更快、更小、更自由。不是 Spring&#xff0c;没有 Servlet&#xff0c;也无关 JavaEE&#xff1b;新兴独立的开放生态 &#xff08;已有150来个生态插件&#xff09; 。主框架仅 0.1 MB。 相对于 Spring Boot…

计算正整数的阶乘math.factorial()

【小白从小学Python、C、Java】【计算机等级考试500强双证书】【Python-数据分析】计算正整数的阶乘math.factorial()[太阳]选择题请问math.factorial(3)的输出结果是?import mathprint("【执行】math.factorial(3):",math.factorial(3))print("【执行】math.f…

带你玩转Jetson之Deepstream简明教程(二)Deepstream是什么?干什么?有什么优势?

1.Deepstream是什么&#xff1f; Deepstream是Nvidia公司推出的一套基于开源视频流框架Gstreamer的一套库。其本身由多个.lib.so和.h构成&#xff0c;其支持语言包括了Python和Cpp两种主流语言。你可以在任何Python或者Cpp编译器、开发环境中引用库的API构建属于你自己的推理流…

【c++之于c的优化】

目录&#xff1a;前言关键字一、命名空间1.什么是命名空间2.如何使用命名空间3.如何自己创建命名空间4.为什么要使用命名空间5.命名空间起别名6.匿名命名空间二、缺省参数定义缺省参数类型注意事项三、函数重载定义函数重载的三种方式操作系统的区分方式四、引用定义引用特性使…