前端三剑客 —— JavaScript (第二节)

目录

内容回顾

数据类型

基本数据类型:

引用数据类型:

常见运算

算术运算符

比较运算符

逻辑运算符

赋值运算符

自增/减运算符

三目运算符

位运算符


内容回顾

        1.概述

        2.基本数据

                1.使用方式(行内、页面、外部)

                2.对话框(警告、确认、输入)

                3.关键字(具有特殊意义的单词,它的特点是全部小写)

                4.注释(单选注释//、多行注释/**/、文档注释/*!*/)

                5.变量(定义变量我们需要使用的语法:let|const|var 变量名称 = 值)

                6.规则和规范(规则我们是需要遵守,而规范我们应该符合这个标准写法),只能是字母、数字、下划线和$符号,数字不能开头。

                7.数据类型

数据类型

在JS中有以下两大类:基本数据类型、引用数据类型

基本数据类型:

数值类型(Number)

整数(int)

浮点数(float)

布尔类型(Boolean),有两个值:true 和 false

字符串(String),它可以是单引号包裹的数据,也可以是双引号包裹的数据。在JS推荐使用单号

空(null),表示不存在

未定义(undefined),表示变量定义了,但是没有给它赋值就使用这个变量。

不是数字(NaN - Not a Number),判断是否为数字,如果不是返回true,如果是返回false

引用数据类型:

数组(Array),它用于存储一组相同类型的数据

对象(Object)在JS中万物皆对象!!!

判断数据类型我们在JS中是通过typeof运行符来实现的。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>数据类型</title>

</head>

<body>

<script>

    // 1. 定义一个整数类型的变量

    let num = 10

    console.log(num, typeof num); // 在控制台中输出变量的值以及变量的类型

    // 2. 定义一个浮点类型的变量

    let money = 10000.5

    console.log(money, typeof money);

    // 3. 定义一个布尔类型的变量

    let bool = false

    console.log(bool, typeof bool);

    // 4. 定义一个字符串类型的变量

    let str1 = "hello"

    console.log(str1, typeof str1);

    let str2 = 'world'

    console.log(str2, typeof str2);

    // 5. 空值类型,它只有一个值 null

    let nullVal = null

    console.log(nullVal, typeof nullVal);

    // 6. 未定义

    let age

    console.log(age, typeof age)

    // 7. 判断是否为数字

    let n = 'a'

    console.log(isNaN(n), typeof isNaN(n))

</script>

</body>

</html>

常见运算

算术运算符

在JS算术运算符包含加、减、乘、除、取模等。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>算术运算数</title>

</head>

<body>

<script>

    // 数值类型的算术运算

    let a = 10

    let b = 2

    // 加法运算

    let r = a + b

    console.log(r);

    // 减法运算

    r = a - b

    console.log(r);

    // 乘法

    r = a * b

    console.log(r);

    // 除法

    r = a / b

    console.log(r);

    // 取模,得到除法的余数

    r = a % b

    console.log(r);

    // 幂运算

    r = a ** b

    console.log(r)

    console.log('-----------------------------')

    // 布尔类型的算术运算

    let b1 = true

    let b2 = true

    r = b1 + b2

    console.log(r)  // 当两个布尔值进行加法运算时,会把 true 变为 1false 变为 0 后再作运算

    r = b1 - b2

    console.log(r)

    r = b1 / b2

    console.log(r)

    r = b1 * b2

    console.log(r)

    // 字符串的算术运算

    let s1 = '30'

    let s2 = '20'

    r = s1 + s2

    console.log(r)   // 字符串作加法操作其实就是进行字符串拼接操作

    r = s1 - s2

    console.log(r, typeof r)  // 当字符串作减法操作时,它会看这个字符串能不能转换为数字,如果能则转换后再计算,如果不能则输出 NaN

    r = s1 * s2

    console.log(r, typeof r) // 当字符串作乘法时,也会先看这个字符串能不能转换为数字,如果能则按数值进行计算,否则输出 NaN

    console.log('-----------------------------')

    // 空值

    let n1 = null

    let n2 = null

    r = n1 + n2

    console.log(r, typeof r)

    let n3 = 5

    r = n1 + n3

    console.log(r, typeof r)  // 当空值进行算术运算时,它会转换为数值 0,然后再作计算

    // 未定义

    let un1 = undefined

    let un2 = undefined

    r = un1 + un2

    console.log(r)   // 未定义类型不能进行算术运算

</script>

</body>

</html>

比较运算符

比较运算也中关系运算。它是用于比较两个数之间的大小,结果为一个布尔类型的值。比较运算符包含:大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、不等于(!=)、全等于(`===`)

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>比较运算符</title>

</head>

<body>

<script>

    let n1 = 10

    let n2 = 20

    r = n1 > n2

    console.log(r, typeof r)

    r = n1 < n2

    console.log(r, typeof r)

    r = n1 >= n2

    console.log(r, typeof r)

    r = n1 <= n2

    console.log(r, typeof r)

    r = n1 == n2

    console.log(r, typeof r)

    r = n1 != n2

    console.log(r, typeof r)

    console.log('-------------------------------')

    let n3 = 5

    let n4 = 5

    let n5 = '5'

    r = n3 == n4

    console.log(r)

    r = n3 === n4

    console.log(r)

    r = n3 == n5  // 使用 == 等号的方式来进行比较时,是比较的两个变量转换为数值类型后的值的大小。

    console.log(r)

    r = n3 === n5 // 使用 === 等号的方式进行比较时,比较的是值的大小以及它的类型是否相同。只两者都相同才为 true,否则为 false

    console.log(r)

    console.log('-----------------------------')

    //----------布尔类型的比较运算---------------------

    let b1 = true

    let b2 = false

    r = b1 === b2

    console.log(r)    // 使用布尔值来做比较运算是没有意义的,因为比较运算的结果本身就是布尔类型的值。

    console.log('-----------------------------')

    let s1 = 'hello'

    let s2 = 'hallo'

    s1 = '100'

    s2 = '10'

    s1 = 'World'

    s2 = 'world'

    r = s1 === s2

    r = s1 > s2

    console.log(r)

</script>

</body>

</html>

逻辑运算符

逻辑运算符主要是指多个条件之间的关联关系,逻辑运算符有:与(&&)、或(||)以及非(!)这三种。

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>逻辑运算符</title>

</head>

<body>

<script>

    let n1 = 5

    let n2 = 6

    let b1 = true

    let b2 = false

    let r = n1 && n2 && b1

    console.log(r, typeof r) // 使用与运算时,只有全部都是 true ,结果才是 true,否则结果为 false

    r = n1 > n2 || b1 || b2

    console.log(r)   // 使用或运算时,只有全部为 false,结果才是 false,否则结果为 true

    r = !b1

    console.log(r)

    r = !b2

    console.log(r)  // 使用非运算时,如果本身为 true 则结果为 false,如果本身为 false 则结果为 true,即取反

    r = n1 < n2 & b2

    console.log(r)

    r = b1 & b2

    console.log(r)

    r = b1 | b2

    console.log(r)

</script>

</body>

</html>

在逻辑运算符中,也可以使用 & 号来表示运算使用 | 符号来表示或运算。它们与 && 以及 || 是有区别的。

赋值运算符

在 JS 中赋值运算符有以下几种:

1.=:将它这符号右边的值赋给这个符号左边的变量

2.+=:把符号右边的值与这个变量之前的值相加后再赋给这个变量

3.-=:把符号右边的值与这个变量之前的值相减后再赋给这个变量

4.*=:把符号右边的值与这个变量之前的值相乘后再赋给这个变量

5./=:把符号右边的值与这个变量之前的值相除后再赋给这个变量

6.%=:把符号右边的值与这个变量之前的值取模后再赋给这个变量

7.**=:把符号右边的值与这个变量之前的值幂运算后再赋给这个变量

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>赋值运算符</title>

</head>

<body>

<pre>

 =:将它这符号右边的值赋给这个符号左边的变量

 +=:把符号右边的值与这个变量之前的值相加后再赋给这个变量

 -=:把符号右边的值与这个变量之前的值相减后再赋给这个变量

 *=:把符号右边的值与这个变量之前的值相乘后再赋给这个变量

 /=:把符号右边的值与这个变量之前的值相除后再赋给这个变量

 %=:把符号右边的值与这个变量之前的值取模后再赋给这个变量

 **=:把符号右边的值与这个变量之前的值幂运算后再赋给这个变量

  </pre>

<script>

    let a = 10   // 使用 = 进行赋值运算,它是将等号右边的值赋给等号左边的变量

    console.log(a)

    a += 10  // 它等价于 a = a + 10

    console.log(a)

    a -= 10   // 它等价于 a = a - 10

    console.log(a)

    a *= 10   // 它等价于 a = a * 10

    console.log(a)

    a /= 10   // 它等价于 a = a / 10

    console.log(a)

    a %= 10  // 它等价于 a = a % 10

    console.log(a)

    a **= 10  // 它等价于 a = a ** 10 0 10 次方

    console.log(a)

</script>

</body>

</html>

自增/减运算符

严格来说,它是属于算术运算符中,我们在这里把单独拿出来进行讲。

问题:a++ 和 ++a 有什么区别?

根据上面的代码运行的结果以及分析的过程,我们发现:++ 后是先使用它的值,然后自己再加 1,而 ++ 在前是先自己加 1 后,再把结果进行相加。

总结:++在前是先自增再运算,++在后是先运算再自增!!!!!!!!!!!!!

三目运算符

三目运算符出现的目的是为了简化 if 语句。它的语法格式为:`变量 = 表达式 ? 值1 : 值2`。当表达为 true 时,取值1,否则取值2。

位运算符

位运算符会涉及到二进制的计算,会有补码、原码、反码。位运算符有 & 、| 、^ 、<< 、>> 以及 >>>

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美团一面:说说synchronized的实现原理?问麻了。。。。

引言 在现代软件开发领域&#xff0c;多线程并发编程已经成为提高系统性能、提升用户体验的重要手段。然而&#xff0c;多线程环境下的数据同步与资源共享问题也随之而来&#xff0c;处理不当可能导致数据不一致、死锁等各种并发问题。为此&#xff0c;Java语言提供了一种内置…

纯小白蓝桥杯备赛笔记--DAY10(字符串)

文章目录 KMP字符串哈希算法简介&#xff1a;斤斤计较的小z--2047字符串hash Manacher回文串的性质算法简介最长回文子串 字典树基础朴素字符串查找步骤前缀判定--1204 01tire算法简介&#xff1a;例题1&#xff1a;例题2&#xff1a; KMP字符串哈希 算法简介&#xff1a; 真前…

Mysql数据库getshell方法

今天摸鱼时候&#xff0c;突然有人问我不同的数据库getshell的方式&#xff0c;一时间我想到了mysql还有redis未授权访问到getshell的方式&#xff0c;但是仅仅第一时间只想到了这两种&#xff0c;我有查了查资料&#xff0c;找到了上面两种数据库getshell的补充&#xff0c;以…

现在做抖店还有机会吗?具体该如何来运营转化,今天一文详解!

大家好&#xff0c;我是电商小布。 抖店这个项目从推出到现在&#xff0c;差不多是已经走了四个年头了。 这个项目凭借着自身背后的庞大流量基础、轻资产创业投入等特点&#xff0c;吸引到了很多小伙伴加入进来。 如今&#xff0c;仍然是有不少小伙伴想要来加入其中。 但是…

P8602 [蓝桥杯 2013 省 A] 大臣的旅费【树的直径】

P8602 [蓝桥杯 2013 省 A] 大臣的旅费 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<iostream> #include <algorithm> #include <vector> using namespace std; #define int long long const int N5e5100; int n; int res0; typedef pair<int,…

tianai行为验证码JS逆向

注意&#xff0c;本文只提供学习的思路&#xff0c;严禁违反法律以及破坏信息系统等行为&#xff0c;本文只提供思路 本文的验证码网址如下&#xff0c;使用base64解码获得 aHR0cDovL2NhcHRjaGEudGlhbmFpLmNsb3VkLw 打开官网&#xff0c;由于有许多验证码类型&#xff0c;这里只…

QGIS操作:制作速率专题图

1、修改配色色带 双击打开的矢量文件&#xff0c;弹出如下图所示的图层属性界面&#xff0c;如下图所示&#xff1b; 点击左侧 符号化&#xff0c;选择色带的变化方式、符号、颜色渐变等方式&#xff1b; 设置每个色带所表示的数值范围&#xff0c;变化模式等内容&#xff1…

猫头虎分享已解决Error: 解决“IndexError: list index out of range“

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 文章目录 猫头虎分享已解决Error: 解决"IndexError: list index out of range" &#x1f431;&#x1f989;&#x1f6e0;️摘要正文内容一、错误现场勘察 &#x1f575…

java报错:程序包XXXXXX不存在,但pom文件没报错

本地包找不到 直接找不到的包在生命周期重新install&#xff1b; 重新启动成功&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;

电商系列之风控安全

> 插&#xff1a;AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

11.python的字典dict(下) 遍历字典,结构优化

11.python的字典dict(下) 遍历所有的键值对 items()方法是字典的一个内置方法&#xff0c;用于返回字典中所有键值对的视图&#xff08;view&#xff09;。它返回一个可迭代的对象&#xff0c;每个元素都是一个包含键和对应值的元组。 下面用一个例子来说明items()方法的用法…

Flutter 解决NestedScrollView与TabBar双列表滚动位置同步问题

文章目录 前言一、需要实现的效果如下二、flutter实现代码如下&#xff1a;总结 前言 最近写flutter项目&#xff0c;遇到NestedScrollView与TabBar双列表滚动位置同步问题&#xff0c;下面是解决方案&#xff0c;希望帮助到大家。 一、需要实现的效果如下 1、UI图&#xff1…

安全左移是什么,如何为网络安全建设及运营带来更多可能性

长久以来&#xff0c;网络安全技术产品和市场需求都聚焦于在“右侧”防护&#xff0c;即在各种系统、业务已经投入使用的网络环境外围或边界&#xff0c;检测进出的流量、行为等是不是存在风险&#xff0c;并对其进行管控或调整。 然而事实上&#xff0c;安全风险不仅是“跑”…

Jackson 各种注解使用示例

参考资料 Jackson使い方メモ 目录 一. JsonIgnore二. JsonIgnoreProperties三. JsonProperty3.1 作用于entity属性上&#xff0c;指定json对象属性名3.2 作用于entity方法上&#xff0c;指定json对象属性名 四. JsonFormat4.1 日期格式化4.2 数字格式化4.3 枚举类返回code 五.…

记录一次hss不能防护主机的问题

场景&#xff1a;hss的控制台显示不在防护中&#xff0c;其他云主机并没有这个情况。 故障发生的时间是昨天下午15点半左右&#xff0c;运维同事做了重启网卡的操作。service network restart 排查分析&#xff1a; 于是仔细的查看日志&#xff0c;发现报错如下&#xff1a…

MySQL-用户与权限管理:用户管理、权限管理、角色管理

用户与权限管理 用户与权限管理1.用户管理1.1 登录MySQL服务器1.2 创建用户1.3 修改用户1.4 删除用户1.5 设置当前用户密码1.6 修改其它用户密码 2. 权限管理2.1 权限列表2.2 授予权限的原则2.3 授予权限2.4 查看权限2.5 收回权限 访问控制连接核实阶段请求核实阶段 3. 角色管理…

iOS App Store审核要求与Flutter应用的兼容性分析

本文探讨了使用Flutter开发的iOS应用能否上架&#xff0c;以及上架的具体流程。苹果提供了App Store作为正式上架渠道&#xff0c;同时也有TestFlight供开发者进行内测。合规并通过审核后&#xff0c;Flutter应用可以顺利上架。但上架过程可能存在一些挑战&#xff0c;因此可能…

扫描IP开放端口该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开

扫描IP开放端口该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开 #/bin/bash #该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开放来哪些端口 #用telnet方式 IP$1 #IP119.254.3.28 #获得IP的前…

基于遗传优化的SVD水印嵌入提取算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于遗传优化的的SVD水印嵌入提取算法。对比遗传优化前后SVD水印提取性能&#xff0c;并分析不同干扰情况下水印提取效果。 2.测试软件版本以及运行结果展示 MA…

Set及其实现类与常用方法

1.Set及其常用实现类 Set接口是java.util.Collection接口的子接口.用来存储一个一个的数据.后面学习到的Map接口则用来存储key-value键值对. Set : 存储无序的,不可重复的数据|----->HashSet : 主要实现类 : 底层使用的是HashMap,即使用数组单向链表红黑树来存储。|-----&…