资讯专栏INFORMATION COLUMN

javascript变量运算符详解

Sourcelink / 1993人阅读

摘要:代码示例等号检查,类型转换后返回全等检查,由于时类型,时类型,类型不同,返回关系运算符关系运算符执行的是比较运算,通常用于判断两个变量哪个大哪个小关系运算符都返回一个布尔值。逻辑或运输符用双竖线表示。

1.运算符

JavaScript中常见的运算符包含:赋值运算符、算数运算符、等性运算符、关系运算符、条件运算符、布尔运算符、逻辑运算符……

1.赋值运算符 =

赋值运算符“=”,用于给某个变量赋值。

代码示例:

var x;
x=5;        //把数字 5 赋值给变量x
x="hello";  //把字符串 hello 赋值给x

除了简单的赋值运算符“=”之外,还有一种常用的复合赋值运算符

1.1 加法/赋值运算符 +=

加法赋值运算符x+=y,等价于x=x+y,它是一种简写形式。

代码示例:

var x=5;
x+=1;           //等价于  x=x+1;
console.log(x);     //6
1.2 减法/赋值运算符 -=

减法赋值运算符x-=y,等价于x=x-y,它是一种简写形式。

代码示例:

var x=5;
x-=1;           //等价于  x=x-1;
console.log(x);     //4
2.算数运算符

JavaScript中的算数运算符主要用在数字类型变量的数学运算,包含加法、减法、乘法、除法、取余等等。

代码示例:

var x=5,y=2;
console.log(x+y);    //加法运算,结果:7      
console.log(x-y);    //减法运算,结果:3  
console.log(x*y);    //乘法运算,结果:10
console.log(x/z);    //除法运算,结果:2.5
console.log(x%y);    //取余运算,结果:1,   5除以2,商为2,余数为1  
3.等性运算符

等性运算符主要用于判断两个变量的值和类型是否相等。判断返回的结果为一个布尔值。

3.1等号和非等号

在JavaScript中等号由双等号(==)表示,当双等号两边运算数相等时,返回结果为true。

代码示例:

var x=5,y=5,z=9;
console.log(x==y);      //true
console.log(x==z);      //false

非等号由感叹号加等号(!=)表示,当非等号两边的运算数不相等时,返回结果为true。

代码示例:

var x=5,y=5,z=9;
console.log(x!=y);      //false
console.log(x!=z);      //true

注意:在比较两个运算数是否相等时,JavaScript引擎会将这两个运算数进行类型转换

执行类型转换的规则如下:

布尔值转换成数字:false转换成0,true转换成1.

数字与字符串:字符串转换成数字。

对象与字符串:把对象转换成字符串。

对象与数组:把对象转换成数组。

在比较时,对于一些特殊的运算数,遵守以下规则:

null和undefined相等。

不能把null和undefined转换成其他值。

只要有一个运算数是NaN,等号返回false,非等号返回true。

如果两个运算数都是对象,比较的是他们的引用值。

如果两个运算数指向同一对象,等号返回true。

即使两个数都是NaN,等号仍然返回false。

特殊的情况:

表达式 返回值
null == undefined true
"NaN" == NaN false
5 == NaN false
NaN == NaN false
NaN !=NaN true
false == 0 true
true == 1 true
true == 2 false
undefined == 0 false
null == 0 false
"5" == 5 true
3.2全等号和非全等号

全等号和非全等号所做的事与等号和非等号相同,只是在检查相等性前,不执行类型转换

全等号由三个等号表示(===),检查时不仅要值相等,更要类型相等。

代码示例:

var x=5;
var y="5";
console.log(x==y);      //等号检查,类型转换后返回 true
console.log(x===y);     //全等检查,由于x时number类型,y时string类型,类型不同,返回false
4.关系运算符

关系运算符执行的是比较运算,通常用于判断两个变量哪个大?哪个小?关系运算符都返回一个布尔值。

常用的关系运算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)

代码示例:

var x=5,y=3,z=5;
console.log(x>y);       //true
console.log(x=z);      //true
console.log(x<=z);      //true
4.1字符串与字符串之间的关系比较

对于数字类型的变量关系比较我们遵循数学原则,但是对于字符串类型的变量,如去要进行关系比较则需按照ASCII码;

ASCII码对照表见下图:

代码示例:

var x="Hello",x="world";
console.log(x>y);       //false

如上述代码所示,如果我们要比较Hello和world这两个字符串,首先比较首字符的大小,对照ASCII字符编码表,H的十进制编码为72,w的十进制编码为119,所以变量x应该是小于变量y,故而上面代码返回结果为false。

4.2数字与字符串之间的关系比较

当一个字符串与数字进行关系比较时,JavaScript引擎会将字符串转换成数字,然后按照数字顺序比较它们。

代码示例:

var x="30",y=5;
console(x>y);       //true

在上述示例代码中,字符串"30"将被转换成数字30,然后与数字5进行比较。

但是,如果字符串不能转换成数字又该如何呢?

var x="hello",y=9;
console.log(x>y);   //false

字符串"hello"不能转换成有意义的数字,所以在类型转换的时候返回的是NaN。
==任何包含NaN的关系运算都要返回false==,因此上述代码也输出false。

5.条件运算符(三元运算符)

条件运算符又称为三元运算符,它在JavaScript中是一个既有比较又有赋值的运算符。语法如下:

var x=booleanExpressin ? trueValue : falseValue;

该运算符的意思是:根据booleanExpressin条件表达式的计算结果,如果条件表达式返回的结果为true,则把trueValue赋值给x,如果条件表达式返回的结果为false,则把falseValue赋值给变量。

代码示例:

var x=5,y=10;
var z=(x>y)?x:y;
console.log(z);     //10
6.逻辑运算符

JavaScript中的逻辑运算符有三种:NOT(取反)、AND(逻辑与)和OR(逻辑或)

在进行逻辑运算之前,JavaScript会将变量转换成布尔类型。因此我们需要了解一下不同类型的变量转换为布尔类型时的逻辑值:

参数 说明 转换结果
"" 空字符串 false
"hello" 非空字符串 true
" " 空格 true
0 数字0 false
5.5 非零正数 true
-4 非零负数 true
null false
NaN false
undefined false
Object 对象 true
Array 数组 true
6.1 NOT 取反

逻辑 NOT 取反运算符,意思是得到与当前参数相反的结果,由感叹号(!)表示,取反运算符返回的一定是布尔值。

注意:如果运算数是undefined,发生错误。

代码示例:

var bFalse = false;
var sRed = "red";
var iZero = 0;
var iThreeFourFive = 345;
var oObject = new Object();

console.log(!bFalse);   //true
console.log(!sRed);   //false
console.log(!iZero);   //true
console.log(!iThreeFourFive);   //false
console.log(!oObject);   //false
6.2 AND 逻辑与

逻辑与AND运算符,进行运算时需要两个参数,只有当两个参数转换都为true时,逻辑与才返回true。逻辑与AND运输符用双和号(&&)表示。

代码示例:

var x=true,y=false;
console.log(x&&y);  //false

注意:逻辑与AND运算的运算数可以是任何类型的,如果某个运算数不是原始的布尔类型,逻辑与AND运算不一定返回布尔值:

如果一个运算数是对象,另一个是 Boolean 值,返回该对象。

如果两个运算数都是对象,返回第二个对象。

如果某个运算数是 null,返回 null。

如果某个运算数是 NaN,返回 NaN。

如果某个运算数是 undefined,发生错误。

6.3 OR 逻辑或

逻辑或OR运算符,进行运算时需要两个参数,只要当两个参数中其中一个为true时,逻辑与返回true。逻辑或OR运输符用双竖线(||)表示。

代码示例:

var x=true,y=false;
console.log(x||y);  //true

注意:逻辑或 OR 与逻辑与 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值:

如果一个运算数是对象,并且该对象左边的运算数值均为 false,则返回该对象。

如果两个运算数都是对象,返回第一个对象。

如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。

如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。

如果某个运算数是 undefined,发生错误。

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

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

相关文章

  • 【连载】前端个人文章整理-从基础到入门

    摘要:个人前端文章整理从最开始萌生写文章的想法,到着手开始写,再到现在已经一年的时间了,由于工作比较忙,更新缓慢,后面还是会继更新,现将已经写好的文章整理一个目录,方便更多的小伙伴去学习。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 个人前端文章整理 从最开始萌生写文章的想法,到着手...

    madthumb 评论0 收藏0
  • js几个经典的题目详解

    摘要:四这个题目比较简单即函数声明和变量声明的关系和影响,遇到同名的函数声明,不会重新定义五关于这个题目,的规范有解释的。属性的值是对象关于对象的具体定义,看这里对象六这个题目可以说是最简单的,也是最诡异的关于这个题目,我们先来了解个概念。 废话不多说,直接看题目,先不要急着看答案 先自己思考,收获更多 (长期补仓); 一 var out = 25, inner = { ...

    stormgens 评论0 收藏0
  • JavaScript深入浅出

    摘要:理解的函数基础要搞好深入浅出原型使用原型模型,虽然这经常被当作缺点提及,但是只要善于运用,其实基于原型的继承模型比传统的类继承还要强大。中文指南基本操作指南二继续熟悉的几对方法,包括,,。商业转载请联系作者获得授权,非商业转载请注明出处。 怎样使用 this 因为本人属于伪前端,因此文中只看懂了 8 成左右,希望能够给大家带来帮助....(据说是阿里的前端妹子写的) this 的值到底...

    blair 评论0 收藏0
  • JavaScript数据类型及(隐式)类型转换详解

    摘要:显示的调用转换过程称为显式强制类型转换,隐式的情况称为隐式强制类型转换。隐式强制类型转换让代码变得晦涩难懂而又便捷而奇妙。事实上,允许在比较中进行强制类型转换,而不允许。如果有并且返回基本类型值,就使用该值进行强制类型转换。 JavaScript是一种非常灵活的现代编程语言,灵活到使用者极其容易被忽视的它那广阔的世界以及它带给我们的无限遐想空间。本文将对JavaScript最最基础也最...

    hiyayiji 评论0 收藏0

发表评论

0条评论

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