JS中的运算符

1、算术运算(单目运算符)
+ 、-、*、 /、 %取余、++自增 、--自减
+:两种作用,链接字符串/加法运算。当+两边全为数字时,进行加法运算;当+两边有任意一边为字符串时,起链接字符串作用,
链接之后的结果为字符串.
除+外,其余符号运算时,会先尝试将左右变量用Number函数转为数字;

/:结果会保留小数点。

++:自增运算符,将变量在原有基础上+1;
--:自增运算符,将变量在原有基础上-1;
【a++和++a的异同】
①相同点:无论a++还是++a,运算完以后,a的值均会+1;
②不同点:a++先用a的值去运算,再把a+1;
++a先把a的值+1,在用a+1以后的值去运算;
eg: var a=3,b,c;
b = a++ +2;//先用 a运算,b=3+2,再把a+1=4;
c = ++a +2;//先把a+1,a=5,再用a+1以后的值运算。

2、赋值运算
=赋值 += -= *= /= %=
+=: a +=b;相当于a=a+b;但是前者的运算效率要比后者快,所以推荐使用+=;

3、关系运算
==等于、=== 全等、 !=不等、!==不全等、>、<、>=、<=
①关系运算符,运算之后的结果,只能是Boolean类型;
②判断一个数字是否处于某个区间比须用&&链接;
alert(a<10 && a>0);√ 10>a>0 ×
===:严格等于,要求不但类型相同,值也必须相同;类型不同,结果直接为false;类型相同,在进行下一步判断;
==:等于。类型相同,与===效果一样。类型不同时会先尝试将两边转为数字Number再进行判断;
但是有个别特例 ,如:Null==flase × Null==Undefined √

4、条件运算符(多目运算)
a>b?true:false
有两个重要符号 ?和 :
当?前面部分运算结果为true时执行:前面的代码
当?前面部分运算结果为false时,执行:后面的代码
冒号两边可以为数值则整个式子可用于赋值 var a=1<2?1:2;
冒号两边可以为代码块可以直接执行代码;1<2?alert{1}:alert(2)
多目运算符可以多层嵌套。var a =1<2?alert(1):(1>0?4:5);

5、位运算符、 逻辑运算符
&&与、||或、!非
&&两边都成立结果为true
||两边有任意一边成立,结果为true

6、运算符的优先级
() 小括号最高
! ++ -- 单目运算符
* / %
+ -
> < > = <=
== !=
&& //与或同时存在时,&&比||高
||
= += -= *= /= //最低是各种赋值

JS中的分支结构

[if-else结构]
1.结构的写法:
if(判断条件){
条件为true时,执行if的{}
}else{
条件为false时,执行else的{}
}


2、注意事项:
①else{}语句块,可以根据情况进行省略。
②if和else后面的{}可以省略,但是省略{}后,if和else只能跟一条语句,所以并不建议省略{}。


3、 if的()中的判断条件,支持的情况:
①Boolean :true为真,false为假;
②String : 空字符串为假,所有非空字符串为真;
③Number : 0为假,一切非0数字为真;
④null/undefined/NaN :全为假;
⑤Object :全为真;

【多重if.阶梯if结构】
1.结构写法:
if(条件一){
条件一成立,执行的操作
}else if(条件二){
条件一不成立&&条件二成立,执行的操作。
}else{
上面所有条件都不成立时,执行的操作。
}

2、多重if结构中,各个判断条件是互斥的,执行选择其中一条路执行。遇到正确选项并执行完以后,直接跳出结构,不再判断后续分支;

【嵌套if结构】
1、结构写法:
if(条件一){
条件一成立
If(){
条件一成立&&条件二成立
}else{
条件一成立并且条件二不成立。
}


}else{
条件一不成立
}
2、在嵌套if 中,如果省略{}则else永远属于离他最近的if结构;

3、嵌套结构可以多层嵌套,但是一般不推荐超过3层;
能用多重if结构的一般不推荐使用嵌套if;

做简单计算器的方法:

<script>
var a =parseFloat(prompt("请输入第一个整数:"));
var b =prompt("请输入符号:");
var c =parseFloat(prompt("请输入第二个整数:"));

var result = 0 ;
result = b=="+"?a+c:result;
result = b=="-"?a-c:result;
result = b=="*"?a*c:result;
result = b=="/"?a/c:result;
alert("结果为:"+result);
</script>

<script>
var num1 =parseFloat(prompt("请输入第一个整数:"));
var fu =prompt("请输入操作字符");
var num2 =parseFloat(prompt("请输入第二个整数:"));

if(fu=="+"){
alert(num1+num2);
}else{
if(fu=="-"){
alert(num1-num2);
}else{
if(fu=="*"){
alert(num1*num2);
}else{
alert(num1/num2);
}
}
}
</script>

JS中的运算符和JS中的分支结构的更多相关文章

  1. JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构

    JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...

  2. js中的运算符和条件语句

    js中的运算符大体上可以分为4类:1算术运算符.2一元操作符.3比较运算符.4逻辑运算符. 算术运算符一般指的是加减乘除求余这五种操作符:+,-,*,/,%.通过算术运算符可以对js中的变量进行操作. ...

  3. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...

  4. JS中的运算符 以及变量和输入输出

    1.算术运算(单目运算符) + 加 .- 减.* 乘. / 除. % 取余.++ 自增.-- 自减. >>> +:有两种作用,链接字符串/加法运算,当+两边全为数字时,进行加法运算, ...

  5. 让你彻底搞懂JS中复杂运算符==

    让你彻底搞懂JS中复杂运算符== 大家知道,==是JavaScript中比较复杂的一个运算符.它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性”之一. 在仔细阅读了ECMA ...

  6. js基础 js自执行函数、调用递归函数、圆括号运算符、函数声明的提升 js 布尔值 ASP.NET MVC中设置跨域

    js基础 目录 javascript基础 ESMAScript数据类型 DOM JS常用方法 回到顶部 javascript基础 常说的js包括三个部分:dom(文档document).bom(浏览器 ...

  7. JS中的运算符_函数学习

    js中的运算符:     算数运算符:     + - * / % ++ --          逻辑运算符:     & | !  && || < > <= ...

  8. 位运算符在JS中的妙用

    正文 位运算 JavaScript 中最臭名昭著的 Bug 就是 0.1 + 0.2 !== 0.3,因为精度的问题,导致所有的浮点运算都是不安全的,具体原因可详见<0.1 + 0.2不等于0. ...

  9. 浅谈JS中逗号运算符的用法

    阅读本文的前提是,你能区分什么是表达式,什么是语句.还有明确运算符和运算数都是些啥东西.所谓的表达式就是一个JavaScript的"短语",JavaScript的解释器可以计算它, ...

随机推荐

  1. vue的一些坑(第一天)

    1:刚开始在创建项目的时候一直出现vue不是内部或外部命令 关于这个的解决方案网上给出的很多的解决方案是配置环境,这个我就不在赘述了: 但是我觉得那样太麻烦,就没用,只是重新 npm i vue-cl ...

  2. NodeJS基本使用简介

    Node.js 1.Nvm Node的版本管理工具,用于切换node的版本 一.下载nvm,放在纯英文路径 二.用命令行打开nvm.exe 三.打开setting.txt,其中有四个配置. Root: ...

  3. MySQL Q&A 解析binlog的两个问题

    MySQL Q&A 解析binlog的两个问题 博客分类: MySQL mysqlbinlog字符集解析binlog格式 连续碰到两个同学问类似的问题,必须要记录一下. 问题:     一个作 ...

  4. 时序分解算法:STL

    1. 详解 STL (Seasonal-Trend decomposition procedure based on Loess) [1] 为时序分解中一种常见的算法,将某时刻的数据\(Y_v\)分解 ...

  5. SQL的JOIN语法解析(inner join, left join, right join, full outer join的区别)

    原文链接:http://www.powerxing.com/sql-join/ 总的来说,四种JOIN的使用/区别可以描述为: left join 会从左表(shop)那里返回所有的记录,即使在右表( ...

  6. 多个测试类 只使用同一个浏览器,同一个driver对象, 或者同一个页面的对象

    如果是:多个测试类 只使用同一个浏览器,同一个driver对象, 或者同一个页面的对象,只需要:1. 创建一个基本的测试类(BaseTest),具有一个公共静态的driver属性, public st ...

  7. OpenCV探索之路(二十三):特征检测和特征匹配方法汇总

    一幅图像中总存在着其独特的像素点,这些点我们可以认为就是这幅图像的特征,成为特征点.计算机视觉领域中的很重要的图像特征匹配就是一特征点为基础而进行的,所以,如何定义和找出一幅图像中的特征点就非常重要. ...

  8. 浅析Java RTTI 和 反射的概念

    一.概念: RTTI(Run-Time Type Identification,运行时类型识别)的含义就是在运行时识别一个对象的类型,其对应的类是Class对象,怎么理解这个Class对象呢?如果说类 ...

  9. 关于批量插入数据之我见(100万级别的数据,mysql) (转)

    因前段时间去面试,问到如何高效向数据库插入10万条记录,之前没处理过类似问题,也没看过相关资料,结果没答上来,今天就查了些资料,总结出三种方法: 测试数据库为MySQL!!! 方法一: public  ...

  10. Win10个性化设置

    Win10个性化设置.. ---------------------- Capture001-我的桌面 ---------------------- Win10设置任务栏的颜色 ----------- ...