资讯专栏INFORMATION COLUMN

浅谈javaScript各大运算符

lykops / 540人阅读

摘要:除法大前端数字类型与字符串除法运算,同样会先将字符串转为数字类型再做算术运算,同样与布尔类型做算术运算,也是先把布尔类型转换为数字类型再做算术运算,但是遇到字符串里包含有英文或者中文将会得到结果。

算数运算符

包含+、-、*、/、%,下面通过代码示例来给大家进行演示一下;
加法:

var num=100;
var str1="大前端";
var str2="300";
var boo=true;
console.log(num+str1);//100
console.log(num+str2);//100300
console.log(num+boo);//101
console.log(str2+boo);//300true

字符串作为加法运算会默认为字符串拼接,但是数字类型与布尔类型做加法运算,布尔类型会自己先转换为数字,再进行算数运算。

减法:

var num=100;
var str1="大前端";
var str2="300";
var boo=true;
console.log(num-str1);//NaN
console.log(num-str2);//-200
console.log(num-boo);//99
console.log(str2-boo);//299

数字类型与字符串做减法运算,这时候字符换会转换为数字类型,再做算数运算,如果字符串类型的内容包含文字或英文,那么得到的结果将是NaN,NaN不管与什么做算术运算都是NaN,数字类型与布尔类型做减法算术运算,同样布尔类型也会自动转换为数字类型在进行算术运算。

乘法:

var num=100;
var str1="大前端";
var str2="300";
var boo=true;
console.log(num*str1);//NaN
console.log(num*str2);//30000
console.log(num*boo);//100
console.log(str2*boo);//300

数字类型与字符串乘法运算,会将字符串先转换为数字类型再做算术运算,如果数字类型与布尔类型做运算,那么布尔值同样也会先转换为数字类型才进行算术运算,但是遇到字符串里包含有英文或者中文将会得到结果NaN。

除法:

var num=100;
var str1="大前端";
var str2="300";
var boo=true;
console.log(num/str1);//NaN
console.log(num/str2);//0.3333333333333333
console.log(num/boo);//100
console.log(str2/boo);//300

数字类型与字符串除法运算,同样会先将字符串转为数字类型再做算术运算,同样与布尔类型做算术运算,也是先把布尔类型转换为数字类型再做算术运算,但是遇到字符串里包含有英文或者中文将会得到结果NaN。

模运算:

var num=100;
var str1="大前端";
var str2="300";
var boo=true;
console.log(num%str1);//NaN
console.log(num%str2);//100
console.log(num%boo);//0
console.log(str2%boo);//0请输入代码

数字类型与字符串做模运算,首先会把字符串类型转换为数字类型再进行算术运算,同样遇到布尔类型,会先把布尔类型转换为数字类型再做算数运算,如果字符串包含中文或者英文,会返回NaN。

自增运算符

前++ 变量名称:先自增再赋值

var n=10;
var res=++n;
console.log(res);//11
console.log(n);//11

后++ 变量名称:先赋值再自增

var n=10;
var res=n++;
console.log(res);//10
console.log(n);//11
比较运算符

包含:>、<、>=、<=、!=、!==、===、==

//number类型
console.log(10 > 11);// false
console.log(11 > 10);// true
//boolean类型,boolean类型转换为number类型
console.log(true > false);// true
console.log(true > 0);// true
/*string类型 - a.英文;b.中文
  英文或中文,将文本转换成 Unicode 码 - 对应具有数字值
  英文单词,从左至右的依次比较字母 Unicode 码的大小
  */
console.log("a" < "b");// true
console.log("abc" > "cba");// false
console.log("我" > "你");// true
//number类型
console.log(10 == 10);// true
console.log(10 == 11);// false
//boolean类型
console.log(true == true);// true
console.log(true == false);// false
//string类型
console.log("a" == "a");// true
console.log("a" == "b");// false
// 只比较值不比较类型
console.log("100" == 100);// true
/*相等比较运算符
  与赋值运算符的区别
  赋值运算符(=)
  相等比较运算符(==)
  不等比较运算符
  符号是"!="
  不是"<>"
*/
// 全等与不全等 - 不仅比较值,还比较类型
console.log(10 === 10);// true
console.log("10" === 10);// false
console.log("10" == 10);// true
比较运算符

逻辑与:&&

console.log(true && true);// true
console.log(true && false);// false
/*逻辑与运算,只要有一个为false,那么就为false,只有两个都为true,结果才为true
*/
console.log(100 && 1);// 1
console.log(1 && 0);// 0
console.log(true && true);
console.log(true && false);
console.log("" && "前端");// ""
console.log("" && "");// ""

逻辑或:||

console.log(false || true);// true
console.log(false || false);// false
/*
    逻辑或,只要有一个为true,就为true
 */
console.log(100 || 1);// 100
console.log(1 || 0);// 1
console.log(true || true);
console.log(true || false);
console.log("" || "前端");// 前端
console.log("" || "");// ""
条件运算符
var total = 30 > 20 ? "贵了" : "便宜";
console.log(total);//贵了

var total = 95;
score > 90 ? console.log("太贵了") : console.log("便宜了");

嵌套条件运算符

var total = 55;
/*嵌套条件运算符
  优点:扩展了条件运算符本身的计算能力
  缺点:可读性比较差,性能随着嵌套的层级越多越差
  最多不要超过三层嵌套
*/
var result = total > 90 ? "太贵了" : (total > 80 ? "贵了" : (total > 60 ? "便宜" : "太便宜了"));
console.log(result);//太便宜了

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96696.html

相关文章

  • 浅谈JS中的数据类型

    摘要:中的每一个值,都是一种数据,属于一种数据类型。数值的数值有许多种表示类型。对象这是中最核心的概念,也是最复杂的数据类型。对象的每一个键名又称为属性,它的键值可以是任何数据类型。特例函数返回,但是我们要注意并没有这一数据类型。 JS中的数据类型。什么是数据类型? 和我们平时交流一样一样。什么是汉字,什么是拼音,什么是标点符号,什么又是现在流行的表情包?类型,可以是语言的分类,也一定是理解...

    lufficc 评论0 收藏0
  • 浅谈逻辑运算符&&(与)和 ||(或)

    我有一群奇形怪状的小伙伴,总会问我一些奇形怪状的问题。 昨天有一个叫周三胖(因崇拜某国领导人以及结合其个人特点所以姓周,号三胖⊙﹏⊙)的朋友,向我发了这么一张图片:showImg(https://segmentfault.com/img/bVPFiz?w=1148&h=96); 兄弟,上面那几句什么意思? 呔!三胖休得坑贫道。老衲不会! 大哥,我是真不会,求讲解? %#@!#¥& ..... 经过...

    xiyang 评论0 收藏0
  • 浅谈逻辑运算符&&(与)和 ||(或)

    我有一群奇形怪状的小伙伴,总会问我一些奇形怪状的问题。 昨天有一个叫周三胖(因崇拜某国领导人以及结合其个人特点所以姓周,号三胖⊙﹏⊙)的朋友,向我发了这么一张图片:showImg(https://segmentfault.com/img/bVPFiz?w=1148&h=96); 兄弟,上面那几句什么意思? 呔!三胖休得坑贫道。老衲不会! 大哥,我是真不会,求讲解? %#@!#¥& ..... 经过...

    RdouTyping 评论0 收藏0
  • 浅谈逻辑运算符&&(与)和 ||(或)

    我有一群奇形怪状的小伙伴,总会问我一些奇形怪状的问题。 昨天有一个叫周三胖(因崇拜某国领导人以及结合其个人特点所以姓周,号三胖⊙﹏⊙)的朋友,向我发了这么一张图片:showImg(https://segmentfault.com/img/bVPFiz?w=1148&h=96); 兄弟,上面那几句什么意思? 呔!三胖休得坑贫道。老衲不会! 大哥,我是真不会,求讲解? %#@!#¥& ..... 经过...

    cnTomato 评论0 收藏0
  • 浅谈面向对象的javascript几个特性

    摘要:中的和是一门很灵活的语言,尤其是。即然是面向对象的编程语言,那也是不可或缺的。在中,永远指向的是他的调用者。定义是存在于实例化后对象的一个属性,并且指向原对象的属性。我们在扩展的时候,同时父类也会有对应的方法,这很显然是一个很严重的问题。 javascript中的this和new javascript是一门很灵活的语言,尤其是function。他即可以以面向过程的方式来用,比如: f...

    JayChen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<