JavaScript 之 中心语法 [ 运算符 ]

算数运算符

  • 算数运算符 – 示意对数据值举行盘算
  • 加法运算符 – 写法:加号 +

    • number范例的数据值,会一般举行盘算
    • boolean范例的数据值,会先将范例转换成number范例,然后在举行盘算
    • string范例的数据值,没法举行盘算,他会将其他范例都转换成string范例,在举行字符串的拼接
/* 定义变量 */
var num = 10;
var str1 = '哦吼吼吼';
var str2 = '20';
var boo = true;

/* 加法运算 */
/* number范例举行盘算 */
console.log( num + 100 );// 110
/* string范例举行盘算 */
console.log( str1 + 100 );// 哦吼吼吼100
console.log( str2 + 100 );// 20100
/* 会将数据范例都转换成string范例 */
console.log( typeof str1, typeof str2);// string
/* boolean范例举行盘算 */
console.log( true + 100 );// 101
  • 减法运算符 – 写法:减号 –

    • 一切范例的运算都是与数学盘算雷同
    • 一切范例在盘算中碰到NaN时,效果都是NaN
/* 定义变量 */
var num = 10;
var str1 = '哦吼吼吼';
var str2 = '20';
var boo = true;
/* 减法运算 */
console.log( num - 100 );// -90
console.log( str1 - 100 );// NaN
console.log( str2 - 100 );// -80
console.log( boo - 100 );// -99
  • 乘法运算符 – 写法:星号 *

    • 一切范例的运算都是与数学盘算雷同
    • 一切范例在盘算中碰到NaN时,效果都是NaN
/* 定义变量 */
var num = 10;
var str1 = '哦吼吼吼';
var str2 = '20';
var boo = true;
/* 乘法运算 */
console.log( num * 100 );// 1000
console.log( str1 * 100 );// NaN
console.log( str2 * 100 );// 2000
console.log( boo * 100 );// 100
  • 除法运算符 – 写法:斜杠 /

    • 一切范例的运算都是与数学盘算雷同
    • 一切范例在盘算中碰到NaN时,效果都是NaN
    • 在除法运算时,假如被除数为0,会获得无穷大(Infinity)
/* 定义变量 */
var num = 10;
var str1 = '哦吼吼吼';
var str2 = '20';
var boo = true;
/* 除法运算 */
console.log( num / 100 );// 0.1
console.log( str1 / 100 );// NaN
console.log( str2 / 100 );// 0.2
console.log( boo / 100 );// 0.01
/* 被除数是 0 时,会获得无穷大 */
console.log( 100/0 );// 无穷大 Infinity
  • 求余运算符 – 写法:百分号 %

    • 示意猎取在除法盘算后获得的余数
    • 余数的正、负,与操纵的第一个数值有关
/* 求余运算 */
console.log(100 % 3);// 1
console.log(8 % 4);// 0
/* 余数的正负 */
console.log(-100 % 3);// -1
console.log(8 % -4);// 0
  • 自增运算符 – 写法:两个加号 ++

    • 示意当前的变量数值加1
    • 自增运算符能够加在变量前面(++变量),定义体式格局:先增添,后赋值
    • 自增运算符也能够加在变量背面(变量++),定义体式格局:先赋值,后增添
/* 定义变量 */
var num = 10;
var str1 = '哦吼吼吼';
var str2 = '20';
var boo = true;
/* 自增运算 */
/* 先自增,在赋值 */
var zizeng1 = ++num;
console.log( zizeng1 );// 11
console.log( num );// 11
/* 先赋值,在自增 */
var zizeng2 = num++;
console.log( zizeng2 );// 10
console.log( num );// 11
  • 自减运算符 – 写法:两个减号 —

    • 示意当前的变量数值减1
    • 自增运算符能够加在变量前面(–变量),定义体式格局:先自减,后赋值
    • 自增运算符也能够加在变量背面(变量–),定义体式格局:先赋值,后自减
/* 定义变量 */
var num = 10;
var str1 = '哦吼吼吼';
var str2 = '20';
var boo = true;
/* 自减运算 */
/* 先自减,在赋值 */
var zijian1 = --num;
console.log( zijian1 );// 9
console.log( num );// 9
/* 先赋值,在自减 */
var zijian2 = num--;
console.log( zijian2 );// 10
console.log( num );// 9

比较运算符

  • 比较运算符 – 示意能够对两个数据值举行比较
  • 大于和小于

    • 大于 – 用法 ( > 、>= )
    • 小于 – 用法 ( < 、<= )
/* number范例 - 直接举行比较 */
console.log( 10 > 100 );// 显现 false
console.log( 10 <= 10 );// 显现 true
console.log( 10 < 100 );// 显现 true
/* boolean范例 - 先将boolean范例转换为number范例,在举行比较 */
console.log( true > false );// 显现 true
console.log( true < 0 );// false
/*
    string范例
     * 字符串中的数值是数字
      * 先将string范例转换为number范例,在举行比较
     * 字符串中的数值是字母或汉字
      * 字母或汉字 - 先将文本转换成 Unicode码,在经由过程 Unicode码 所对应数字值来举行比较
      * 英文单词 - 从左至右的顺次比较字母 Unicode码
 */
/* 字符串中的数值是数字 */
console.log( '100' > 10 );// 显现 true
/* 字符串中的数值是字母 */
console.log('a' < 'b');// true
console.log('a' > 'A');// true
/* 字符串中的数值是单词 */
console.log('abc' > 'cba');// false
console.log('abc' < 'acd');// true
  • 相称和不等

    • 相称 – 用法 ( == )
    • 不等 – 用法 ( != )
    • 只比较数值,不比较范例
/* numbe范例与string范例 */
console.log( 10 == '10' );// true
/* number范例与boolean范例 */
console.log( 1 == true );// true
/* string范例与boolean范例 */
console.log( '1' != true );// false
console.log( 10 != '10' );// false
  • 全等和不全等

    • 全等 – 用法 ( === )
    • 不全等 – 用法 ( !== )
    • 不仅比较数值,也比较范例
/* numbe范例与string范例 */
console.log(10 === '10');// false
/* numbe范例与number范例 */
console.log(10 === 10);// true
/* numbe范例与string范例 */
console.log(10 !== '10');// true
/* numbe范例与number范例 */
console.log(10 !== 10);// false

逻辑运算符

  • 逻辑与运算符 – 用法 ( && )

    • 假如两个变量数值都不是boolean值,须要先将范例转换成boolean范例,在举行盘算
    • 假如两个变量的布尔值都为false的话,效果为左侧变量的值
    • 假如两个变量的布尔值,一个是true一个是false的话,效果为false的变量值
    • 假如两个变量的布尔值都为true的话,效果为右侧变量的值
console.log( false && false );// 效果 false
console.log( true && false );// 效果 false
console.log( false && true );// 效果 false
console.log( true && true );// 效果 true
  • 逻辑或运算符 – 用法 ( || )

    • 假如两个变量数值都不是boolean值,须要先将范例转换成boolean范例,在举行盘算
    • 假如两个变量的布尔值都为false的话,效果为右侧变量的值
    • 假如两个变量的布尔值,一个是true,一个是false,效果为true的变量值
    • 假如两个变量的布尔值都为true的话,效果为左侧变量的值
console.log( false || false );// 效果 false
console.log( true || false );// 效果 true
console.log( false || true );// 效果 true
console.log( true || true );// 效果 true
  • 逻辑非运算符 – 用法 ( ! )

    • 示意猎取数据值的相反值
console.log( !true );// 效果 false
console.log( !0 );// 效果 true
console.log( !'哦吼吼吼' );// 效果 false

前提运算符

  • 语法 前提表达式 ? 为true的效果 : 为false的效果
  • 对一个表达式举行推断

    • true – 示意真
    • false – 示意假
  • 前提运算符能够在个中在嵌套一个前提运算符
var s1 = 10;
/* 举行前提推断 */
var n1 = s1 > 5 ? true : false;
console.log( n1 );// 效果 true
var s2 = 4;
/* 举行前提推断 */
var n2 = s2 > 5 ? true : false;
console.log( n2 );// 效果 false

/* 前提运算符的嵌套 */
var s = 3;
var n = s > 7 ? true :( s > 5 ? true : false );
console.log( n );// 效果 false

推断NaN和无穷大

  • isNaN()函数 – 推断当前值是不是为 NaN

    • true – 示意当前值是 NaN
    • false – 示意当前值不是 NaN
console.log( isNaN( 100 ) );// 显现效果 false
console.log( isNaN( Number( '啊哈哈' ) ) );// 显现效果 true
  • isFinite()函数 – 推断当前值是不是为无穷大

    • true – 示意当前值是有限数值(不是无穷大)
    • false – 示意当前值是无穷大
var num = 100/0;
console.log( num );// 显现 Infinity - 无穷大
console.log( isFinite( result ) );// 显现效果 false
    原文作者:蔡志远
    原文地址: https://segmentfault.com/a/1190000015924446
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞