JavaScript初级——运算符

一、算数运算符

    1、运算符也叫操作符。通过运算符可以对一个或多个值进行运算,并获取运算结果。

         比如:typeof 就是运算符,可以获得一个值的类型,他会将该值的类型以字符串的形式返回

                                   (number、string、boolean、undefined、object)。

    2、算术运算符

          当对非Number类型的值进行运算时,会将这些值转换为Number然后再进行运算。

          任何值和NaN做运算都得NaN

①   +    ——可以对两个值进行加法运算,并将结果返回。

                     如果对两个字符串进行加法运算,则会做拼串操作,会将两个字符串拼接位一个字符串并返回结果。

                     任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作。

                            ——我们可以利用这一特点,讲一个任意的数据类型转换为String,只需要为任意的数据类型 + 一个 “”(空串),即可将其转换为String,这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用 String()函数。

②  -      ——可以对两个值进行减法运算,并将结果返回。 

③  *      ——可以对两个值进行乘法运算,并将结果返回。

④  /      ——可以对两个值进行除法运算,并将结果返回。

⑤ %     ——取模运算(取余数)。

⑥  任何值做 -  *  /  运算时都会自动转换为Number我们可以利用这一特点做隐式的类型转换,可以通过为一个值  -0   、  *1    、 /1   来将其转换为Number,原理和Number()函数一样,使用起来更加简单。

二、一元运算符

    1、一元运算符,只需要一个操作数。

    2、有两个运算符:

          +   ——   正号,不会对数字产生任何影响。

          -    ——   负号,可以对数字进行负号的取反。

    3、对于非Number类型的值,它会将其先转换为Number,然后再运算。可以对一个其他的数据类型使用 + ,来将其转换为number,它的原理和Number()函数一样。

三、自增和自减

    1、自增  ++

① 通过自增可以使变量在自身的基础上增加1。

② 对于一个变量自增以后,原变量的值会立即自增1。

③ 自增分成两种:后++(a++)和前++(++a)。

                            无论是 a++ 还是++a ,都会立即使原变量的值自增1。

                            不同的是 a++ 和 ++a 的值不同  ——  a++ 的值等于原变量的值(自增前的值)

                                                                              ——  ++a 的值等于新值(自增后的值)

    2、自减  --

① 通过自减可以使变量在自身的基础上减1。

② 自减分成两种: 后 --(a--) 和 前 --(--a)。无论是 a-- 还是 --a 都会立即使原变量的值自减1。

                             不同的是 a-- 和 --a 的值不同   ——   a-- 是变量的原值(自减前的值)

                                                                            ——   --a 是变量的新值(自减后的值)

四、逻辑运算符(JS中提供了三种逻辑运算符)

    1、非       !

①  ! 可以用来对一个进行非运算。

② 所谓的非运算就是对一个布尔值进行取反操作,即 true 变成 false ,false 变成 true 。

③ 如果对于一个值进行两次取反,它不会变化。

④ 如果对非布尔值进行运算,则会将其转换为布尔值,然后再进行取反操作。所以我们可以利用该特点,讲一个其他的数据类型转换为布尔值:可以为一个任意数据类型去两次反,将其转换为布尔值,原理和 Boolean()函数一样。

    2、与       &&

①  && 可以对符号两侧的值进行与运算并返回结果。

② 运算规则:   

                            —— 两个值中只要有一个为 false 就返回 false

                            —— 只有两个值都为 true 时,才会返回 true

③ JS中的“与”属于短路的与,如果第一个值为 false ,则不会看第二个值。

    3、或        ||

① || 可以对符号两侧的值进行或运算并返回结果。

② 运算规则:

                         ——  两个值中只要有一个 true ,就返回 true

                         ——  如果两个值都为 false  ,才会返回 false

③ JS中的“或”运算时域短路的或,如果第一个值为 true ,则不会检查第二个值。

    4、非布尔值的与或运算

① 对于非布尔值的与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值。

② 与运算:

                  —— 如果第一个值为 true ,则必然返回第二个值

                  —— 如果第一个值为 false ,则直接返回第一个值

③ 或运算:

                           —— 如果第一个值为 true ,则直接返回第一个值

                           —— 如果第一个值为 false ,则返回第二个值

五、赋值运算符

    1、   =      可以将符号右侧的值赋值给左侧的变量。

    2、  +=      a+=5等价于a=a+5。

    3、   -=      a-=5等价于a=a-5。

    4、   *=      a*=5等价于a=a*5。

    5、   /=       a/=5等价于a=a/5。

    6、  %=      a%=5等价于a=a%5。

六、关系运算符

    1、通过关系运算符可以比较两个值之间的大小关系,如果关系成立返回 true ,如果关系不成立返回 false 。

    2、     >      大于号

                       —— 判断符号左侧的值是否大于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。

    3、   >=     大于等于号

                      —— 判断符号左侧的值是否大于或等于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。

    4、    <      小于号

                      —— 判断符号左侧的值是否小于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。

    5、    <=    小于等于号

                      —— 判断符号左侧的值是否小于或等于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。

    6、非数值的情况

① 对于非数值进行比较时,会将其转换为数字然后再进行比较。

② 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码。

③ 比较字符编码时是一位一位进行比较的,如果两位一样,则比较下一位,所以借用它来对英文进行排序,比较中文没有意义。

    7、任何值和NaN做任何比较都是 false

    8、如果比较的两个字符串是数字,则可能会得到不可预期的结果,所以在比较两个字符串的数字时,一定要转型。

七、Unicode编码表

    1、在JS中的字符串中需要使用转义字符输入Unicode编码。

          语法格式: \u 四位编码                   —— 编码为16进制

    2、在网页中使用Unicode编码

          语法格式: &#编码;                      —— 编码为10进制

八、相等运算符

    1、相等运算符用来比较两个值是否相等,如果相等会返回 true ,否则会返回 false 。

    2、使用 == 来做相等运算

                           —— 当使用 == 来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型,然后再比较。

    3、 undefined 衍生自 null ,所以这两个值做相等判断时,会返回 true

    4、 NaN不和任何值相等,包括他本身

    5、判断某个变量的值是否为 NaN ,可以通过 isNaN()函数 来判断,如果该值是 NaN 则返回 true ,否则返回 false 。

    6、使用 = 做不相等运算

                          —— 不相等用来判断两个值是否不相等,如果不相等返回 true ,相等返回 false 。

                          —— 不相等也会对变量进行自动的类型转换,如果转换后相等也会返回 false 。

    7、使用 === 来做全等运算

                          —— 用来判断两个值是否全等,他和相等类似,不同的是他不会做自动的类型转换,如果两个值的类型不同直接返回 false 。

    8、使用 == 来做不全等运算

                          —— 用来判断两个值是否不全等,和不等类似,不同的是他不会做自动的类型转换,如果两个值的类型不同直接返回 true 。

九、条件运算符

    1、条件运算符也叫三元运算符。

    2、语法:

                      条件表达式?语句1:语句2

    3、执行流程:条件运算符在执行时,首先对条件表达式进行求值,如果该值为 true ,则执行语句1,并返回执行结果;如果该值为 false ,则执行语句2,并返回执行结果。

    4、如果条件的表达式的求值结果使一个非布尔值,会将其转换为布尔值然后再运算。

十、运算符优先级

    1、和数学一样,在JS中运算符也有优先级,比如:先乘除,后加减。

    2、JS中运算符优先级表如下,在表中越靠上优先级越高,优先级越高越先计算,如果优先级一样,则从按照表达式左往右计算。如果遇到优先级不清楚可以使用()来改变优先级

十一、代码块

    1、我们的程序是由一条一条语句构成的,语句是按照自上向下的顺序一条条执行的。

    2、在JS中可以使用 { } 来为语句进行分组。同一个 { } 中的语句我们称为是一组语句,他们要么都执行,要么都不执行。

    3、一个 { } 中的语句我们也称为一个代码块,在带那块的后边就不用再编写 ; 了。

    4、在JS中的代码块,只是具有分组的作用,没有其他的用途,代码块内的内容在外部是完全可见的

本文分享到此结束,下一节继续分享JavaScript初级学习的语句的内容。欢迎大家一同讨论学习。

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

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

相关文章

【秋招笔试】8.12-4399秋招(第一套)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…

计算机网络12——IM聊天系统——项目分析和架构搭建

1、IM——聊天系统主要功能 &#xff08;1&#xff09;注册 根据&#xff1a;昵称&#xff0c;手机号&#xff0c;密码 &#xff08;2&#xff09;登录 根据&#xff1a;手机号&#xff0c;密码 &#xff08;3&#xff09;添加好友 根据&#xff1a;昵称 &#xff08;4&…

Secure CRT 9.x版本高亮着色配置文件

Secure CRT的网络配置文件高亮显示&#xff0c;还在完善&#xff0c;逐渐适配不同厂商 设备名字自动蓝色高亮显示设备接口名高亮显示IPv4地址、IPv6地址、MAC地址高亮显示掩码、反掩码高亮显示设备SN号高亮显示接口状态、设备状态等高亮显示各路由协议高亮显示 【下载地址】效果…

XSS-复现dom破坏案例和靶场

目录 xss注入原理&#xff1a; xss是什么&#xff1f; xss原理&#xff1a; DOM&#xff1a; 闯关&#xff1a; 第一关&#xff1a;Ma Spaghet! 源码&#xff1a; 要求&#xff1a; 分析&#xff1a; 第二关&#xff1a; Jefff 源码&#xff1a; 要求&#xff1a; …

ubuntu基于sealos搭建k8s集群,helm3安装配置自动化扩容Prometheus,grafana出图展示,以及动态web搭建

1.项目简介 大方向&#xff1a;k8s云原生方向&#xff0c;运维技术&#xff0c;配置问题解决 解决技术:ubuntu模板机安装&#xff0c;配置远程xshell连接ubuntu&#xff0c;设置静态ip&#xff0c;换ubuntu阿里云源&#xff0c;配置集群间域名解析&#xff0c;解决双IP冲突网…

ubuntu下使用docker、socket、yolov5进行图像处理数据交互记录

ubuntu下使用docker、socket、yolov5进行图像处理数据交互记录 概述&#xff1a;主要实现了在宿主机上通过8000端口传递一张图像给docker镜像&#xff0c;然后镜像中处理后&#xff0c;通过8001端口回传处理后的图像给宿主机。 第一章、构建镜像 一、dockerfile文件 1.拉取…

尚品汇-前端面包屑平台属性、排序处理(三十三)

目录&#xff1a; &#xff08;1&#xff09;面包屑处理平台属性 &#xff08;2&#xff09;排序处理 &#xff08;2&#xff09;单点登录业务介绍 &#xff08;1&#xff09;面包屑处理平台属性 前端显示&#xff1a;面包屑显示效果 搜list搜索方法继续添加返回的平台属性…

Lora 全文翻译

作者&#xff1a; 地点&#xff1a;hby 来源&#xff1a;https://arxiv.org/pdf/2106.09685 工具&#xff1a;文心 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 摘要 自然语言处理的一个重要范式包括在通用领域数据上进行大规模预训练&#xff0c;并适应特定任务或…

php 在app中唤起微信app进行支付,并处理回调通知

<?phpnamespace app\api\controller;use think\facade\Db; use think\facade\Log;class Wxzf {

什么是视频比特率?与视频时长是什么关系

​ ‌比特率是指单位时间内传输或处理的比特的数量&#xff0c;单位为‌bps(‌bit per second)。‌ 比特率经常用于描述在电信和计算领域中数据传输的速度&#xff0c;也可以作为衡量音频和视频文件数据率的指标。比特率越高&#xff0c;传送的数据越大&#xff0c;音频或视频…

Notion快速使用

探索Notion&#xff1a;全能笔记软件的新世界 1. 什么是Notion&#xff1f; 在数字化时代&#xff0c;一款集颜值与功能于一身的笔记软件无疑是学习与工作的得力助手。今天&#xff0c;我要向大家介绍的就是这样一款全能型选手——Notion。Notion不仅以其高颜值在众多笔记软件…

拟南芥中基因家族序列的提取

1.拟南芥基因组数据的下载 phytozome 是一个收录植物基因组数据的网站&#xff0c;数据整理比较规范&#xff0c;已 经提供了去除可变剪切的 cds 和 protein 序列文件。只有 gff3 文件需要 过滤处理 2. 对拟南芥的注释文件gff3文件进行ID处理&#xff0c;最终得到以下4个文件 …

【uni-app】使用天气API做一个天气APP(全过程)- 实况、逐小时、40日

头一次使用uni-app写代码, 现学现卖, 写的不好的地方见谅, 申请个appid就可以运行 切换城市界面比较简单, 城市名称需要符合天气api参数规则, 录入的城市不要带市区县; 格式如: 青岛、铁西、海淀、沛县 APP效果 功能说明 实况天气逐小时预报未来7日天气未来40日天气空气质量详…

C语言 | Leetcode C语言题解之第336题回文对

题目&#xff1a; 题解&#xff1a; #define SIZE 9470 #define N 168000 #define P 13331typedef unsigned long long ULL; ULL p[301];//p[i]存储P^ivoid init()//初始化p进制次幂数组 {int i;p[0]1;for(i1;i<300;i){p[i]p[i-1]*P;} }int** palindromePairs(char**words,…

探索 Resolume Arena 7 - 引领 VJ 音视频创作的卓越软件

Resolume Arena 7 是一款专为 Mac 和 Windows 系统设计的强大 VJ 音视频软件&#xff0c;为创意专业人士和爱好者提供了丰富而出色的功能。 这款软件拥有直观且用户友好的界面&#xff0c;即使对于初学者来说&#xff0c;也能快速上手并开始创作。其强大的媒体管理功能&#x…

SpringBoot事务-调度-缓存

一.Spring Boot中的事务管理 设置事务 Transactional(isolation Isolation.DEFAULT) Transactional(propagation Propagation.REQUIRED) 开启事务 EnableTransactionManagement 1. 开启事务管理 要开启 Spring 的事务管理&#xff0c;你需要在你的 Spring Boot 应用中添加 …

大数据技术现场工程师特色实训室解决方案

一、引言 在大数据时代背景下&#xff0c;数据已成为新的生产要素&#xff0c;驱动着各行各业的创新发展。面对这一趋势&#xff0c;市场对于既掌握大数据理论知识又具备实战能力的大数据技术人才的需求急剧增加。为了应对这一挑战&#xff0c;唯众精心设计了一套全面的大数据…

详解golang内存管理

介绍 要搞明白 Go 语言的内存管理,就必须先理解操作系统以及机器硬件是如何管理内存的。因为 Go 语言的内部机制是建立在这个基础之上的,它的设计,本质上就是尽可能的会发挥操作系统层面的优势,而避开导致低效情况。 操作系统内存管理 其实现在计算机内存管理的方式都是…

FPGA资源评估

FPGA资源评估 文章目录 FPGA资源评估前言一、资源评估1.1 资源有哪些1.2 资源统计 二、 FPGA 的基本结构三、 更为复杂的 FPGA 架构 前言 一、资源评估 大家在项目中一般会要遇到需要资源评估的情况&#xff0c;例如立了新项目&#xff0c;前期需要确定使用什么FPGA片子&…

RabbitMQ消息队列总结

RabbitMQ那些事 参考一. `RabbitMQ`介绍1.1 Java工程师1.1.1 RabbitMQ学习目标1.1.2 消息队列介绍1.1.3 RabbitMQ介绍各自属性介绍(❤❤❤)二. `RabbitMQ`安装1. 基于Linux1.1 安装1.2 常用命令1.3 后台管理开启与面板介绍三. 客户端`SDK`操作(❤❤了解)1. 客户端依赖1. 生产者…