JavaScript 运算符介绍

在 JavaScript 语言中,运算符主要用于执行程序代码运算,针对一个以上的操作数项目来进行运算。运算符大家应该不陌生,因为我们在数学中都学过,例如加减乘除等。JavaScript 中的运算符可以分为 算术运算符、赋值运算符、字符串运算符、比较运算符、逻辑运算符、类型运算符、按位运算符等。

算术运算符

JavaScript 中算术运算符主要用于对数字执行算术,以数值作为其操作数,并返回一个单个数值。

算术运算符我们可以分为7种:

运算符 描述
+ 加,加法运算符的作用是数值求和,或者字符串拼接。
- 减,减法运算符使两个操作数相减,结果是它们的差值。
* 乘,乘法运算符的结果是操作数的乘积。
/ 除,除法运算符的结果是操作数的商 ,左操作数是被除数,右操作数是除数。
% 求余,求余运算符返回第一个操作数对第二个操作数的模。
++ 递增,递增运算符为其操作数增加1,返回一个数值。
-- 递减,递减运算符将其操作数减去1,并返回一个数值。

赋值运算符

赋值运算符基于右边的值,给左边的值赋值。最基本的赋值运算符是等号=,也是我们最常用到的。

赋值运算符可以分为下面6种:

运算符 描述
= x = y,将 y 的值赋给 x
+= x += y, 相当于 x = x + y
-= x -= y ,相当于 x = x - y
*= x *= y ,相当于 x = x * y
/= x /= y ,相当于 x = x / y
%= x %= ,y相当于 x = x % y

比较运算符

JavaScript 中的比较运算符可以用于比较两个值。关于比较运算符我们可以分为下面8种:

运算符 描述
== 等于
=== 等值等类型
!= 不等于
!== 不等于值或不等于类型
> 大于
< 小于
>= 大于等于
<= 小于等于

逻辑运算符

逻辑运算符又被叫做条件运算符,运算的结果只有两种,真(true)或假(false)。关于逻辑运算符可以分为三种,如下所示:

运算符 描述
&& 逻辑与
|| 逻辑或
! 逻辑非

类型运算符

类型运算符主要有两种,分别是:

  • typeof:用于查找JavaScript变量的数据类型,返回变量的类型。
  • instanceof:用来判断某个构造函数的prototype属性是否存在在另一个要检测对象的原型链上,返回一个Boolean值,指出对象是否是特定类的一个实例。
示例:

我们可以使用typeof 操作符来检测变量的数据类型,如下所示,定义了一些不同类型的变量,然后在控制台输出这些变量的类型:

var name = "xkd";
var age = 18;
var msg = true;
var lst = [1, 5, 8];
var obj = {a: 1, b:2 };

console.log(typeof(name));  // string
console.log(typeof(age));   // number
console.log(typeof(msg));   // boolean
console.log(typeof(lst));   // object
console.log(typeof(obj));   // object

操作符instanceof可以用于检测函数是否存在于实例对象的原型链中:

function Person() {}
function Student() {}
Student.prototype = new Person();

const student = new Student()

if (student instanceof Student) {
  console.log("student是Student的实例");
}
 
if (student instanceof Student) {
  console.log("student是Person的实例");
}

输出:

student是Student的实例
student是Person的实例

按位运算符

处理32位数字,就是它在操作中的任何数字都将转换为32位数字,结果返回一个JavaScript编号。

关于按位运算符我们有一个大概的相关表格如下:

运算符 描述 示例 等同于 结果 十进制的
& and 和 5 & 1 0101 & 0001 0001 1
| or 或者 5 | 1 0101 | 0001 0101 5
~ not 不 ~ 5 ~ 0101 1010 10
^ xor 异或 5 ^ 1 0101 ^ 0001 0100 4
<< 零填充左移 5 << 1 0101 << 1 1010 10
>> 有符号右移 5 >> 1 0101 >> 1 0010 2
>>> 零填充右移 5 >>> 1 0101 >>> 1 0010 2

上面我们简单的介绍了一下 JavaScript 语言中的几种运算符,后面我们会详细讲一下常用运算符的使用。

熟练识记

  1. 运算符的分类可以有哪些。
  2. 认识和知道运算符的各个基本概念。
  3. 定义两个字符,然后通过 + 运算符连接起来,输出结果值。
  4. 同样定义两个字符串,通过 += 运算符连接起来并将结果赋值给第一个后,在浏览器输出结果。
  5. typeof 类型运算符(在任意类型运行后)的返回值可以有哪些。
  6. new 一个对象,然后通过instanceof 类型运算符进行代码的不同类型计算判断。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354