第四十六天

●运算符也叫操作符

   通过运算符可以对一个或多个值进行运算,并获取运算结果

    比如:typeof就是运算符,可以来获得一个值的类型

它会将该值的类型以字符串的形式返回

     number string boolean undefined object

●算数运算符

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

任何值和NaN做运算都得NaN

•+

   可以对两个值进行加法运算,并将结果返回如果对两个字符串进行加法运算,则会做拼串会将两个字符串拼接为一个字符串,并返回任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作

•-

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

•*

    可以对两个值进行乘法运算

•/

    可以对两个值进行除法运算

•%

    取模运算(取余数)

 

   •   任何值和字符串相加都会转换为字符串,并做拼串操作。 利用这一特点,来将一个任意的数据类型转换为String:

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

任何值做-  *   /   运算时都会自动转换为Number可以利用这一特点做隐式的类型转换

可以通过为一个值-0   *1   /1 来将其转换为Number,原理和Number()函数一样。

 

●一元运算符,只需要一个操作数

+ 正号

    正号不会对数字产生任何影响

- 负号

    负号可以对数字进行负号的取反

•对于非Number类型的值,

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

 

●自增 ++

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

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

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

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

a++的值等于原变量的值(自增前的值)

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

●自减--

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

自减分成两种:后--(a--)和前--(--a)

无论是a--还是--a 都会立即使原变量的值自减1,不同的是a--和--a的值不同

a--是变量的原值(自减前的值)

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

●JS中三种逻辑运算符

•!非

可以用来对一个值进行非运算

所谓非 算就是值对一个布尔值进行取反操作,

true变false,false变true

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

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

•&&  与

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

运算规则:

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

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

JS中的“与”属于短路的与,

如果第一个值为false,则不会看第二个值

●||  或

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

运算规则:

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

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

JS中的“或”属于短路的或

如果第一个值为true,则不会检查第二个值

●&& ||   非布尔值的情况

对于非布尔值进行与或运算时,

会先将其转换为布尔值,然后再运算,并且返回原值

与运算:

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

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

或运算

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

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

●赋值运算符

=

可以将符号右侧的值赋值给符号左侧的变量

•+=

a += 5 等价于 a = a + 5

•-=

a-=5 等价于 a = a -5

•*=

a*= 5等价于 a= a*5

•/=

a/= 5等价于 a = a / 5

•%=

a %=5 等价于a= a % 5

●关系运算符

通过关系运算符可以比较两个值之间的大小关系,

如果关系成立它会返回true,如果关系不成立则返回false

•>大于号

判断符号左侧的值是否大于右侧的

如果关系成立,返回true,如果关系不成立则返回false

    var   result =5 > 10;-->false

    console.log("result ="+result);

•>= 大于等于

判断符号左侧的值是否大于或等于右侧的值

•<小于

•<=小于等于

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

   console.log(10<="hello");-->false

比较两个字符串时,比较的是字符串的字符编码

   console.log("a"<"b");-->true

比较字符编码时是一位一位进行比较

如果两位一样,则比较下一位,所以借用它来对英文进行排序

●相等运算符   用来比较两个值是否相等,

如果相等会返回true,否则返回false

•使用== 来做相等运算

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

•不相等

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

使用!=来做不相等运算,不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false

●条件运算符也叫三元运算符

语法:

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

执行的流程:

条件运算符在执行时,首先对条件表达式进行求值, 如果该值为true,则执行语句1,并返回执行结果。如果该值为false,则执行语句2,并回执行结果。如果条件的表达式的求值结果是一个非布尔值,会将其转换为布尔值,然后在运算。

●运算符

可以分割多个语句,一般可以在声明多个变量时使用,

•运算符同时声明多个变量

    var a,b, c;

•可以同时声明多个变量并赋值

    var a=1 ,b=2, c=3;

     alert(b);

在JS中有一个运算符优先级的表,

在表中越靠上优先级越高,优先级越高越优先计算,如果优先级一样,则从左往右计算。

如果遇到优先级不清楚,可以使用()来改变优先级

•我们的程序是由一条一条语句构成的

语句是按照自上向下的顺序一条一条执行的在JS中可以使用{}来为语句进行分组,

同一个{}中的语句,称为是一组语句,它们要么都执行,要么都不执行,

一个{}中的语句也称为叫一个代码块

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

 

 

 

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

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

相关文章

vscode开发Go和Java

vscode开发Go和Java 最新最全 vscode 插件推荐可以参考&#xff1a; https://zhuanlan.zhihu.com/p/623580867 1、公共插件安装 下面是个人使用的插件&#xff1a; # 中文插件 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code https://marketplace…

基于人工智能的房地产行业的ChatGPT能提供什么样的改进解决方案?

解决方案描述自动化客户服务通过自然语言处理和聊天机器人技术&#xff0c;实现自动化的客户咨询和问题解答。这可以提高客户满意度&#xff0c;节省人力资源&#xff0c;并实现全天候的客户支持。数据分析与预测利用机器学习和数据分析技术&#xff0c;对房地产市场数据进行深…

spring中bean实例化的三种方式 -- Spring入门(二)

文章目录 前言1.Bean实例化简介2.bean的实例化 -- 构造方法3.bean的实例化 -- 静态工厂实例化4.bean实例化 -- 实例工厂和FactoryBean5.三种bean实例化方式的区别 总结 前言 为了巩固所学的知识&#xff0c;作者尝试着开始发布一些学习笔记类的博客&#xff0c;方便日后回顾。…

Hive窗口函数大全

Hive窗口函数 一、偏移量函数laglead 二、窗口分析函数first_valuelast_value 三、排序函数rankdense_rankrow_number 一、偏移量函数 lag 语法&#xff1a;lag(col,n,default_val) 返回值&#xff1a;字段类型 说明&#xff1a;往前第n行数据。 lag(column字段&#xff0c;第…

Leetcode 112. 路径总和

题目链接&#xff1a;https://leetcode.cn/problems/path-sum/description/ 思路 递归&#xff0c;先序遍历二叉树&#xff0c;每遍历一个节点便减去当前存储值&#xff08;targetSum targetSum - root.val&#xff09;&#xff1b;当到达某个节点等于targetSum (targetSum…

labview 子画面插入面板

1.前言 在前面一篇文章中描述了弹框式显示子画面&#xff0c; labview 弹窗(子vi)_weixin_39926429的博客-CSDN博客 本文介绍插入式显示子画面。 本文的主题在以前的文章中介绍过&#xff0c; labview 插入子面板_labview插入子面板_weixin_39926429的博客-CSDN博客 借用…

机器学习算法分类

机器学习根据任务的不同&#xff0c;可以分为监督学习、无监督学习、半监督学习、强化学习。 1. 无监督学习 训练数据不包含任何类别信息。无监督学习里典型例子是聚类。要解决的问题是聚类问题和降维问题&#xff0c;聚类算法利用样本的特征&#xff0c;将具有相似特征的样本…

微服务 云原生:搭建 K8S 集群

为节约时间和成本&#xff0c;仅供学习使用&#xff0c;直接在两台虚拟机上模拟 K8S 集群搭建 踩坑之旅 系统环境&#xff1a;CentOS-7-x86_64-Minimal-2009 镜像&#xff0c;为方便起见&#xff0c;直接在 root 账户下操作&#xff0c;现实情况最好不要这样做。 基础准备 关…

React18和React16合成事件原理(附图)

&#x1f4a1; React18合成事件的处理原理 “绝对不是”给当前元素基于addEventListener做的事件绑定&#xff0c;React中的合成事件&#xff0c;都是基于“事件委托”处理的&#xff01; 在React17及以后版本&#xff0c;都是委托给#root这个容器&#xff08;捕获和冒泡都做了…

【java】java中注解的简介,如何自定义注解,有哪些类型,有什么作用

java注解 注解的定义 Java 注解用于为 Java 代码提供元数据。作为元数据&#xff0c;注解不直接影响你的代码执行&#xff0c;但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。 首先要明确一点的是&#xff0c;注解并没有实际的作用&…

八股文(消息队列)

文章目录 1. RabbitMQ特点2. 如何保证消息的可靠性3. RabbitMQ消息的顺序性4. 实现RabbitMQ的高可用性5. 如何解决消息队列的延时以及过期失效问题&#xff1f;6. RabbitMQ死信队列7. RabbitMQ延迟队列8.RabbitMQ的工作模式9. RabbitMQ消息如何传输10. 核心概念10.1 生产者和消…

RNNLSTM

文章目录 前言引言应用示例-槽填充(slot filling)-订票系统二、循环神经网络(RNN)三、Long Short-term Memory (LSTM)LSTM原理[总结](https://zhuanlan.zhihu.com/p/42717426)LSTM例子lstm的训练RNN不但可以N2NMany2One(输入是一个矢量序列,但输出只有一个矢量)Many2Ma…

SpringBoot整合Spring Security实现权限控制

文章目录 Spring Security介绍Spring Security案例1、快速搭建一个springboot工程2、导入SpringSecurity整合springboot工程3、认证3.1、登录流程校验3.2、入门案例的原理3.3、实现思路3.4、实现认证流程&#xff08;自定义&#xff09;3.5、正式实现3.5.1 实现数据库的校验3.5…

ucore lab3 虚拟内存管理

ucore lab3 虚拟内存管理 首先查看有关该lab的数据结构 vma: 描述了一块连续的虚拟内存空间,保证start<end&#xff0c;list_link是一个双向链表&#xff0c;按照从小到大的顺序把一系列用vma_struct表示的虚拟内存空间链接起来&#xff0c;并且还要求这些链起来的vma_str…

python node Ubuntu 安装软件、删除软件 、更新软件 中的 软件源概念

在Node 用npm 安装软件 在Python 用 pip 安装软件 在Ubuntu 用 apt 、apt-get 、snap 安装软件 因为这三款软件 都是国外的&#xff0c; 软件包&#xff08;模块&#xff09;都放在国外的&#xff0c; 安装 、更新 特别慢 Node中配置 下载源 在 node 中 要配置 下载的的地址…

【C语言初阶】指针的运算or数组与指针的关系你了解吗?

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《快速入门C语言》《C语言初阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言&#x1f4ac; 指针运算&#x1f4ad; 指针-整数&#x1f4ad; 指针-指针&#x1f4ad; 指针…

关于K8s的Pod的详解(一)

关于K8s的Pod的详解&#xff08;一&#xff09; Pod和API server的通信加快Pod启动更改Pod的资源Pod 的持久卷的单个访问模式Pod 拓扑分布约束Pod 拓扑分布中的最小域数 Pod 作为k8s创建&#xff0c;调度&#xff0c;管理的基本单位。由上级的Controller对Node上安装的Kubelet发…

电脑安装双系统ubuntu18.04+windows后开机直接进入Windows解决方法

电脑型号&#xff1a;联想拯救者Y9000K2021H 系统&#xff1a;Windows11Ubuntu18.04双系统 问题&#xff1a;笔记本安装双系统后&#xff0c;Windows系统下处理word或者看论文&#xff1b;Ubuntu18.04系统安装ros进行机械臂控制等的研究。但最近开机后发现没有系统选项了&#…

网络传输媒体

物理层下面的传输媒体分为两种&#xff1a;导向型传输媒体和非导向型传输媒体。 一、导向型传输媒体 同轴电缆&#xff1a; 图示&#xff1a; 分类&#xff1a; 基带同轴电缆&#xff1a;用于数字传输&#xff0c;在早期局域网中广泛使用宽带同轴电缆&#xff1a;用于模拟传输…

数据结构之BinaryTree(二叉树)的实现

BinaryTree要实现的方法 总结 remove不在BinNode里&#xff0c;而是BinTree里 递归的两种写法 从上往下&#xff1a;同一对象的递归&#xff08;参数多一个&#xff0c;判空用一句话&#xff09;&#xff0c;子对象的递归&#xff08;参数void&#xff0c;判空用两句话&#…