js中<<是什么运算符
发布时间:2025-05-19 19:42:56 发布人:远客网络
一、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来转成基本类型,再比较。