javascript运算符 javascript软件
很多朋友对于javascript运算符和javascript软件不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
【Web前端基础】js运算符有哪些
JavaScript中的运算符有很多,主要分为算术运算符,等同全同运算符,比较运算符,字符串运算符,逻辑运算符,赋值运算符等。这些运算符都有一些属于自己的运算规则,下面就为大家介绍一下JavaScript中的运算符。
一、JavaScript运算符的种类
1、算术运算符:+、-、*、/、%、-(一元取反)、++、--
2、等同全同运算符:==、===、!==、!===
3、比较运算符:<、>、<=、>=
4、字符串运算符:<、>、<=、>=、=、+
5、逻辑运算符:&&、||、!、
6、赋值运算符:=、+=、*=、-=、/=
你不知道的Javascript等号运算符
JavaScript中共有2个个判断相等的运算符==和===。
这2个运算符的差别在于==在判断相等的时候会进行类型的转换,而===则不会进行类型转换。
一、===运算符
===一般称之为严格相等。用来判断两个操作数是否严格相等。
判断规则:
首先判断两个操作数的类型是否一致,如果不一致就直接认为不等。
如果两个操作数的类型一致,则再判断内容是否相等。
"true"===true//类型不一致, false
"0"===0//类型不一致 false
"1"==="1"//类型一致,并且内容也一致。 true
注意:
如果使用===判断2个对象类型的数据,则直接判断这 2个对象是否为同一个对象。
如果一边是对象类型,一边是基本类型则一定不等。
{}==={}//两边都是对象,但是不是同一个对象,所以 false
[]=== []//两边都是对象,但是不是同一个对象,所以 false
[]===""//一变是对象类型,一边是基本类型,所以false
二、==运算符
==运算符判断相等,由于涉及到类型的强制转换,所以最为复杂。
需要从4个方面来进行分析:
两边都是基本类型,且类型相同
两边都是对象
两边都是基本类型,但是类型不同
一边是基本类型,一边是对象
2.1两边都是基本类型,且类型相同
这个最简单,就看内容是否相等即可。
2.2两边都是对象
这个也简单,规则和===一样,也是判断两个对象是否为同一个对象。
2.3两边都是基本类型,但是类型不同
这个规则比较复杂,很多人也记不住那么多的规则。
经过我的分析和总结,其实这个规则只有一条:
2.4一边是基本类型,一边是对象
这个规则也比较复杂,需要以2.3的规则为基础。
经过我的分析和总结,其实规则只有 2条:
这种情况比较的时候,都是先把对象转换成基本类型再去比较!
先调用对象的valueOf方法,如果返回值值是基本类型的数据,就用这个返回的基本类型的数据去比较。
如果valueOf方法的返回值不是基本类型的数据,则调用toString方法,然后使用toString的返回值进行比较。
注意:关于valueOf和toString方法的说明:
这个两个方法是在Object.prototype对象中定义的,所以所有的对象都会继承这两个方法。
默认情况下valueOf是返回的这个对象的本身(内部其实是返回的this)。
默认情况下toString返回的是字符串: [object Object]
但是有些内置对象覆写了这2个方法。
console.log([1,2].toString());//"1,2"返回的是数组的元素用,连接起来的字符串
console.log(/a/gi.toString());//"/a/gi"正则表达式的字面量字符串
console.log((function(){//注释}).toString());//"function(){//注释}"返回函数源码
console.log(newNumber(10).toString());//"10"返回对应的基本类型的字面量形式
console.log(({}).toString());//"[object Object]"
看下面的代码:
varobj1={
name:"李四"
}
/*
true:
解析:一边是对象,一边是字符串。则会把对象转换成基本类型。
先看valueOf,默认返回的是对象,所以再看toString默认返回的是"[object Object]"所以是true
*/
console.log(obj1=="[object Object]");// true
varobj1={
name:"李四",
valueOf:function(){
return1;
}
}
/*
true:
解析:一边是对象,一边是number。则会把对象转换成基本类型。先看valueOf,返回的是 number类型 1,所以用这个返回值去比较。
*/
console.log(obj1==1);// true
varobj1={
name:"李四",
valueOf:function(){//覆写
return{};
},
toString:function(){//覆写
returnthis.name;
}
}
/*
true:
解析:一边是对象,一边是String。则会把对象转换成基本类型。先看valueOf,返回的是对象,所以调用toString,返回的是字符串"李四"。
*/
console.log(obj1=="李四");// true
vararr= [1,2];
/*
true:
解析:一边是对象,一边是字符串。则会把对象转换成基本类型。先看valueOf,默认返回的是对象,所以调用toString,返回的是字符串"1,2"。
*/
console.log(arr=="1,2");// true
vararr= [1,2];
arr.valueOf=function(){
returntrue;
}
/*
true:
解析:一边是对象,一边是字符串。则会把对象转换成基本类型。先看valueOf,默认返回的是布尔值 true,然后把true转换成number 1,
右边是字符串,然后把字符串转换number 1
所以true
*/
console.log(arr=="1");
三、总结
===一句话总结:先看类型,类型相同再比较内容。类型不同,直接false
==一句话总结:不同基本类型,则都向numbe方向转,然后比较。一边对象一边基本类型,则对象先调用valueOf,再调用toString来转成基本类型,再比较。
javascript语言中的比较运算符不包括
JavaScript语言中有两种比较方式,转换类型比较运算符==和严格比较运算符===.其中严格比较运算符仅当两个操作数的类型相同且值相等时才为true。
JavaScript中的运算符有很多,主要分为算术运算符,等同全同运算符,比较运算符,字符串运算符,逻辑运算符,赋值运算符等。这些运算符都有一些属于自己的运算规则,下面就为大家介绍一下JavaScript中的运算符。
JavaScript脚本语言具有以下特点:
(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移。
OK,关于javascript运算符和javascript软件的内容到此结束了,希望对大家有所帮助。