ES之各种运算符,for、while、do while 、switch…
2018-06-24 00:49:22来源:未知 阅读 ()
运算符优先级:
在所有的运算符中,括号的优先级最高,赋值符号的优先级最低。
小括号 > 计算运算符 > 比较运算符 > 逻辑运算符 > 赋值符号
————————————————————————————————————————————————————————————
算术运算符(从左至右依次计算) -、+、 *、/、%、++、--、+=、-=、*=、%=、
注意点:
"+"只有两个作用: 数学运算和字符串连接(任何数据类型加字符串都是起连接作用)。
"%"的计算结果: 当被除数小于除数时,模的值就为被除数,即使被除数为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)){}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Web前端——JS----细节
- javaScript 逻辑运算符使用技巧整理 2020-03-05
- 总结ext form 表单提交数据的方法 2019-11-20
- jQuery Ajax使用FormData对象上传文件的方法 2019-11-10
- Chrome Form多次提交表单问题的解决方法 2019-11-04
- javascript中的运算符 2019-10-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash