您当前的位置:首页 > 互联网教程

js中<<是什么运算符

发布时间:2025-05-19 19:42:56    发布人:远客网络

js中<<是什么运算符

一、js中<<是什么运算符

1、<<运算符把 expression1的所有位向左移 expression2指定的位数。例如:

2、变量 temp的值为 56,因为 14(即二进制的 00001110)向左移两位等于 56(即二进制的 00111000)。

3、Javascript按位左移运算符(<<)将表达式数字转换成二进制,之后向左移表达式的位。

4、result=【要位移的数字】<<【位移位数】

5、按位左移运算符(<<)将【要位移的数字】的位左移【位移位数】中指定的位数。例如:

6、00001110向左位移2位00111000=56

二、【Web前端基础】js运算符有哪些

JavaScript中的运算符有很多,主要分为算术运算符,等同全同运算符,比较运算符,字符串运算符,逻辑运算符,赋值运算符等。这些运算符都有一些属于自己的运算规则,下面就为大家介绍一下JavaScript中的运算符。

1、算术运算符:+、-、*、/、%、-(一元取反)、++、--

2、等同全同运算符:==、===、!==、!===

3、比较运算符:<、>、<=、>=

4、字符串运算符:<、>、<=、>=、=、+

6、赋值运算符:=、+=、*=、-=、/=

三、你不知道的Javascript等号运算符

JavaScript中共有2个个判断相等的运算符==和===。

这2个运算符的差别在于==在判断相等的时候会进行类型的转换,而===则不会进行类型转换。

===一般称之为严格相等。用来判断两个操作数是否严格相等。

首先判断两个操作数的类型是否一致,如果不一致就直接认为不等。

如果两个操作数的类型一致,则再判断内容是否相等。

"true"===true//类型不一致, false

"1"==="1"//类型一致,并且内容也一致。 true

如果使用===判断2个对象类型的数据,则直接判断这 2个对象是否为同一个对象。

如果一边是对象类型,一边是基本类型则一定不等。

{}==={}//两边都是对象,但是不是同一个对象,所以 false

[]=== []//两边都是对象,但是不是同一个对象,所以 false

[]===""//一变是对象类型,一边是基本类型,所以false

==运算符判断相等,由于涉及到类型的强制转换,所以最为复杂。

两边都是基本类型,但是类型不同

2.1两边都是基本类型,且类型相同

这个最简单,就看内容是否相等即可。

这个也简单,规则和===一样,也是判断两个对象是否为同一个对象。

2.3两边都是基本类型,但是类型不同

这个规则比较复杂,很多人也记不住那么多的规则。

经过我的分析和总结,其实这个规则只有一条:

这个规则也比较复杂,需要以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]"

解析:一边是对象,一边是字符串。则会把对象转换成基本类型。

先看valueOf,默认返回的是对象,所以再看toString默认返回的是"[object Object]"所以是true

console.log(obj1=="[object Object]");// true

解析:一边是对象,一边是number。则会把对象转换成基本类型。先看valueOf,返回的是 number类型 1,所以用这个返回值去比较。

解析:一边是对象,一边是String。则会把对象转换成基本类型。先看valueOf,返回的是对象,所以调用toString,返回的是字符串"李四"。

console.log(obj1=="李四");// true

解析:一边是对象,一边是字符串。则会把对象转换成基本类型。先看valueOf,默认返回的是对象,所以调用toString,返回的是字符串"1,2"。

console.log(arr=="1,2");// true

解析:一边是对象,一边是字符串。则会把对象转换成基本类型。先看valueOf,默认返回的是布尔值 true,然后把true转换成number 1,

右边是字符串,然后把字符串转换number 1

===一句话总结:先看类型,类型相同再比较内容。类型不同,直接false

==一句话总结:不同基本类型,则都向numbe方向转,然后比较。一边对象一边基本类型,则对象先调用valueOf,再调用toString来转成基本类型,再比较。