JavaScript运算符的概述分类及其优先级

运算符的概述

JavaScript供应了一组用于操纵数据值的运算符,又能够称之为操纵符,这些运算符能够根据作用的差别,或许操纵变量数目的差别举行分类。

1.算数运算符的基础操纵比较简单,但我们须要注重以下的几种状况;

*假如运算数中的一个或许两个字符串范例,那末JavaScript会自动转换为数字值,再举行盘算。
假如运算数中的一个或两个是字符串范例,然则个中的字符串不是数字,JavaScript会自动转换数字值    
,获得NaN效果
任何一个运算数是NaN,效果都是NaN。
布尔值false和true会转换为0和1举行盘算*

2.运算符 加减以及求余,自增的用法

var num = 50 ;
var str1 = '范甘迪';
var str2 = '200';
var boo = true;

//加法num 数字加法就是数字相加
 var a1 = num+200
console.log(a1)

//假如是字符串举行相加的话,效果就是将两个字符串相连接
var a2 = str1+200
console.log(a2)

//假如布尔范例举行加法盘算,先将布尔值转换为数字值,再举行加法盘算
var a3 = boo+200
console.log(a3)
//假如字符串举行减法盘算的话 那末先将字符串范例转换为数字值,再举行减法盘算
var a4 =str1-50
console.log(a4)

//减法,先将其他范例转换为number范例,再举行盘算
var a4 = num -100
console.log(a4)

//假如布尔范例举行减法盘算,那末先将布尔范例转换为数字值,再举行减法盘算
var a5 = boo-50
console.log(a5)
//自增运算符是来操纵当时变量的值;每一次自增+1
/*有两种自增计划
1前置自增运算符++变量名 ,先增添后赋值.
2后置自增运算符-变量名++,先赋值再自增
* */
var num = 10;
console.log(num);//10

var a1 = ++num;
console.log(a1);//11
console.log(num);//11

var a1 = num++;
console.log(a1);//11
console.log(num);//12
  • 运算符的有限级别
* 运算符的优先级别
* 运算法则是先运算优先级别较高的运算符
* 假如运算的级别雷同的话则从左至右盘算
`console.log(1+2-3*4) //-9 乘法优先级别更高所以先运算乘法再从左到右运算
console.log(5+50%3)//7 余数的优先级高
console.log(2*4%2)//余数与乘法优先级一样高所以自左到右盘算

var num = 2;
console.log(5*++num)//前置自增优先级更高
//大于小于比较运算符 大小比较运算符的效果范例为布尔范例
/*
* 1num范例*/
console.log(1>2)//false由于1小于2 所以效果为false假
console.log(1<2)//true 1小于2 是正缺的所以效果为true
console.log(1<=2)//true

//booean范例比较运算;先将Boolean范例转换为number范例
console.log(true>false)//true true=1 false=0

//string范例 将string转换为Unicode码然后举行比较
//若比较的是英文单词那末 从左至右字母顺次比较Unicode码举行比较
console.log('a'<'b')//true
console.log('adc'>'asc')//false
console.log('和'<'打')//true

相称与不等运算符

/*相称与不相称运算符
* 两个== 示意相称; 不等则是!=示意*/
console.log(1==2)//false1不等于2所以效果为false
console.log(1!=2)//true 1不等于2 缩减效果为true

//boolea范例
console.log(true==true)//true
console.log(false!=true)//true
console.log(false==3)//false

//string 范例
console.log('s'=='s' )//true
console.log('d'!='我')//true
console.log('213'==213)//true只比较其数值不比较范例

全等与不全等运算符;

//全等不全等,不只不叫值还比较范例
console.log(1 === 10);// true

console.log('10' === 10);// false
console.log('10' === '10');// true

isNaN()函数与isfinite()函数的作用

//isNaN()函数 它的作用就是推断当前的值是不是为NaN
//效果为true效果是NaN
//效果为false是效果不是NaN 由于他不是一个数值
console.log(isNaN(1))// 由于他不是NaN所以效果为false
console.log(isNaN(‘大话西游’))//由于他转换为number范例为NaN所以效果为true
//isfinit()函数示意推断当前值是不是为无穷大
//效果为false时示意当前的值时无限大.
//当效果为true时 示意当前数值为有限大
var a = 100/0;
console.log(a)//infinety 示意输出的效果为无限大
console.log(isFinite(a))//false
逻辑与运算符

console.log(true && true);// true
console.log(true && false);// false
console.log(false && true);// false
console.log(false && false);// false
/*
    将逻辑与运算符的两个操纵数,转换为布尔范例
    * 当左侧的操纵数为true时,效果为右侧操纵数的值
    * 当左侧的操纵数为false时,效果为左侧操纵数的值
 */

`console.log(100 && 1);// 1
console.log(1 && 0);// 0
console.log(0 && 1);// 0
console.log(0 && 0);// 0

console.log(true && true);
console.log(true && false);
console.log(false && true);
console.log(false && false);

console.log('卧龙学苑' && '卧龙学苑');// 卧龙学苑
console.log('优异' && '');// ''
console.log('' && '痴迷');// ''
console.log('' && '');// ''

console.log('答案' && 1);// 1
console.log(false && 0);// false

逻辑或运算符:

console.log(true || true);// true
console.log(true || false);// true
console.log(false || true);// true
console.log(false || false);// false
`
/*
    将逻辑与运算符的两个操纵数,转换为布尔范例
    * 当左侧的操纵数为true时,效果为左侧操纵数的值
    * 当左侧的操纵数为false时,效果为右侧操纵数的值
 */
console.log(100 || 1);// 100
console.log(1 || 0);// 1
console.log(0 || 1);// 1
console.log(0 || 0);// 0

console.log(true || true);
console.log(true || false);
console.log(false || true);
console.log(false || false);

console.log('卧龙学苑' || '卧龙学苑');// 卧龙学苑
console.log('卧龙学苑' || '');// 卧龙学苑
console.log('' || '卧龙学苑');// 卧龙学苑
console.log('' || '');// ''
 
赋值的扩大运算符
var b = 10, c = 20;

var a = b + c;
console.log(a);// 30

// b = b + c;
// 等价写法 - 赋值扩大运算符的机能要比赋值运算符更高
b += c;
console.log(b);// 30
前提运算符:

var result = 8 > 9 ? '对' : '错';

 1. console.log(result);

var score = 95;
score > 90 ? console.log('优异') : console.log('合格');
/*当前提运算符前提为true时输出的效果为冒号前面的值 前提为false时输出效果就是冒号背面的值*/

嵌套运算符:

**
var score = 55;

    /*嵌套前提运算符
    * 长处 - 扩大了前提运算符自身的盘算才能
    * 瑕玷
      * 可读性比较差
      * 机能跟着嵌套的层级越多越差
    * 发起 - 最多不要凌驾三层嵌套*/
var result = score > 90 ? '优异' : (score > 80 ? '优越' : (score > 60 ? '合格' : '不合格'));
console.log(result);**
    原文作者:李通
    原文地址: https://segmentfault.com/a/1190000015923634
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞