ES之各种运算符,for、while、do while 、switch case循环
运算符优先级:
在所有的运算符中,括号的优先级最高,赋值符号的优先级最低。
小括号 > 计算运算符 > 比较运算符 > 逻辑运算符 > 赋值符号
————————————————————————————————————————————————————————————
算术运算符(从左至右依次计算) -、+、 *、/、%、++、--、+=、-=、*=、%=、
注意点:
"+"只有两个作用: 数学运算和字符串连接(任何数据类型加字符串都是起连接作用)。
"%"的计算结果: 当被除数小于除数时,模的值就为被除数,即使被除数为0也不例外。
"/"的计算结果: 俩个number类型的值进行计算,若无法正常计算,得出结果 NAN ,比如0除以任何数等于NAN、
若无法得出具体值,则显示infinity(正无穷)或-infinity,比如1/0=infinity。
自增/自减的特性: 在没有表达式的时候,无论自增自减放变量前面还是后面没有任何区别。
在有表达式的时候,自增自减放变量前面的,它比表达式的优先级高,堪比括号优先级。
例如:var a = 1; var b = a-- + --a; ==> b = 0;
+=、*=、/=、%=的特点:
当一个数加、减、除、模一个不小于1的数并赋给自身时的简写版。
如果右边是表达式,那么先算表达式,在和自身相计算,最后赋给自身。
——————————————————————————————————————————————————————————
比较运算符 < 、> 、>= 、<= 、== 、===、!=
1).只要是用比较运算符比较两个值,得出的结果一定为Boolean值。
2).数字与数字直接比较大小;
3).字符串与字符串是比较的ascii码;
(字符串比较先用字符串的第一个字符进行比较,谁的ascii码大谁就大,若第一个字符相等则比较第二个字符,依次类推。比较运算符隐式的将字符转换成ascii码值)
注意点:
'10'读作:字符串一和零,‘10’< '8',比较的是字符1和字符8的ascii值
————————————————————————————————————————————————————————————
逻辑运算符
逻辑运算符特性:
逻辑运算符的左右两边可以是一个值、一个表达式或执行语句,执行语句没有布尔值说法,
在进行逻辑之前,它会先判断左边的值或表达式的结果转换成布尔值的情况。
逻辑运算的结果为原来的值或表达式的结果。
"&&"与运算符
当只有一个与运算符时,先判断左边的布尔值的情况,
若为假,直接返回左边的原值或表达式结果,
若为真,不对右边进行布尔值判断,直接返回右边的原值或表达式结果。
当有两个及以上的与运算符时,先判断最左边的布尔值,
若为真,则继续判断下一个的布尔值,以此类推,直到遇到为假的,
就返回该值或表达式结果,若全为真,则返回最右边的值或表达式结果。
与运算符的应用:短路语句(利用逻辑运算符先判断左边的布尔值,才决定要不要执行右边的语句)
"||"或运算符: 和与运算符的逻辑判断类似,但是当遇到布尔值为真时,
就停止后面的判断,返回该原值或表达式。
"!"非运算符: 将一个值或表达式结果转换成布尔值,然后再取反。得到的结果为布尔值。
undefined、null、NaN、0、""、false 其结果为false,其他的都为true。
________________________________________________________________________________________
if语句
if和else if的区别:多个if语句都会判断,else if语句只要满足了,后面的就不再判断。
else和else if的区别: else if指一个明确的区间,
else是衔接上面的区间的补集,当上面有很多if或else if时,将他们的区间加起来,然后取补。
while语句
do-while语句
switch-case语句 ————————> 用对象或类数组代替switch方法
switc的括号写条件,case后面是和条件比较的值,这个值可以是任意类型;
注意点: 当swicth匹配到某一个case时,它后面的其他case语句也会执行。
所以应在每个case后面加上break(break只能用于循环语句中,否则会报错)。
利用这个注意点,可以简化当多个case都实现同一功能时的代码量。
————————————————————————————————————————————————————————————
for循环效率提升:当循环数组或类数组时,将长度提取出来放在一个变量中,
达到对长度值提取一次但应用到整个循环。
当在循环中修改数组或类数组长度,可用以下方法来解决
在单一var模式下将获取长度的变量也放在循环中for(i = 0, max = array.length;i < max; i ++){}。
for in循环:用来遍历非数组的对象。
当遍历对象属性来过滤遇到的的原型链的属性时,使用hasOwnProperty()
if(Object.prototype.hasOwn.call(对象引用名,prop)){}
ES之各种运算符,for、while、do while 、switch case循环的更多相关文章
- c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)
1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数 ...
- 运算符 与 分支语句:if ,else if,else;switch case
分支语句: if else if else : switch case --如何使用 if else if else: Console. ...
- 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等
[源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native ...
- js部分---运算符,if分支语句,for循环;switch case 的用法;
------------------------------------------运算符---------------------------------------------------- *数 ...
- if判断和switch case 和三元运算符整理
if判断和switch case 和三元运算符整理 例子1:if判断写法: <script type="text/javascript"> var num = 12; ...
- js运算符和if语句,switch语句
逻辑运算符 类型 运算符 算数运算符 + - * / % ++ -- 赋值运算符 = 比较运算符 > < >= <= == != ...
- PHP小总结
<?php //1.php基础语法 //输出语句 echo print print_r var_dump() //2.php是弱类型语言 //强制转换类型:(类型)变量 settype(变量,类 ...
- JS基础(超级简单)
1 JS基础(超级简单) 1.1 数据类型 1.1.1 基本类型: 1) Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2) ...
- php 复习
<?php 一.php基础语法1.输出语句:echo print print_r var_dump() 2.php是弱类型语言强制转换类型: (类型)变量 settype(变量,类型) 3.变量 ...
随机推荐
- 有关java构造器的笔记
当程序中首次出现使用一个类A时, 无论是使用A的静态成员还是创建一个对象(声明一个A类对象不算), 那么类加载器就会首先对A进行加载, 在对A进行加载的过程中, 如果A有一个extends的父类B, ...
- sysinfo 系统调用
在分析luci时,看到 usr/lib/luci/sys.lua 里调用 nixio.sysinfo().这是一个c调用lua的用例.在nixio的代码process.c里导出了给lua调用的接口.在 ...
- iOS开发——高级篇——iOS涂鸦画板效果实现
一个简单的绘图应用,模仿苹果自带软件备忘录里的涂鸦功能 核心代码 #import "DrawView.h" #import "DrawPath.h" @inte ...
- ClassLoader如何加载class
jvm里有多个类加载,每个类加载可以负责加载特定位置的类, 例如: bootstrap类加载负责加载jre/lib/rt.jar中的类, 我们平时用的jdk中的类都位于rt.jar中. extclas ...
- Speech Recognition Grammar Specification Version 1.0 JavaScript TTS 文本发音
Speech Recognition Grammar Specification Version 1.0 https://www.w3.org/TR/speech-grammar/ W3C Recom ...
- [Android6.0][RK3399] 电池系统(三)电量计 CW2015 驱动流程分析【转】
本文转载自:http://blog.csdn.net/dearsq/article/details/72770295 Platform: RK3399 OS: Android 6.0 Kernel: ...
- bzoj4594: [Shoi2015]零件组装机
论静态查错的重要性...乱搞题真难调 首先这题看起来就是要分治检验了. 考虑对于区间[l,r],分成[l,p-1]和[p,r]使得这两个区间合并可以得到[l,r],并且要保证后面一个区间较大 设前一个 ...
- Go语言web框架 gin
Go语言web框架 GIN gin是go语言环境下的一个web框架, 它类似于Martini, 官方声称它比Martini有更好的性能, 比Martini快40倍, Ohhhh….看着不错的样子, 所 ...
- python-----用多张图片生成视频
代码如下 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/2/19 16:42 # @Author : xiaodai # - ...
- Java-Runoob-高级教程-实例-字符串:08. Java 实例 - 字符串分割(StringTokenizer)
ylbtech-Java-Runoob-高级教程-实例-字符串:08. Java 实例 - 字符串分割(StringTokenizer) 1.返回顶部 1. Java 实例 - 字符串分隔(Strin ...