JavaScript 知识点之运算符

一、算术运算符和赋值运算符

JavaScript提供的算术运算符有+, -, *, /, %. 运算后的值通过 = 赋值。对于 x = x operator y, 我们也可以应用复合赋值运算符,即 x += y 相当于 x = x + y.

+ 也可用作字符串的连接,如

1 var str = ‘hello ‘ + ‘world‘;
2 alert(str); // hello world

如果你试图将一个字符串加到数字上(或其它类型上)时,其它类型将会被先转换成字符串。所以请接受下面的事实:

var str1 = "3" + 4 + 5;
alert(str1); // 345

var str2 = 3 + 4 + "5";
alert(str2); // 75

也许这样的结果会让你懊恼,所以如果你相要做的是加法运算,请确保两个数都是数字。但是这有时候也会为我们带来便利。比如数字加上空串后,可以转换为字符串类型。

1 var num = 5;
2 var str = 5 + ‘‘;
3 alert(typeof str); // string
4 alert(str); // 5

JavaScript中的除法运算符并不是像一些其它语言取整的,它的结果可以是小数。

alert(5 / 2); // 2.5

二、关系运算符

JavaScript提供的关系运算符有小于(<)、大于(>)、小于等于(<=)、大于等于(>=)、相等(==)、不等(!=)、全等(恒等)(===)、不全等(不恒等)(!==)。
他们可应用于数字和字符串。对于===,要求值和类型都有相等。而对于==,只要转换后的值相等即可。这同样也适用于!= 和 !==.

alert(5 === ‘5‘); // false
alert(5 == ‘5‘); // true

请尽量使用===和!==而不是另一组,看了下面的的一些奇怪的例子你就知道了。

alert(‘‘ == ‘0‘); // false
alert(0 == ‘‘); // true
alert(0 == ‘0‘) // true
alert(false == ‘false‘) // false
alert(false == ‘0‘) // true
alert(false == undefined) // false
alert(false == null) // false
alert(null == undefined); // true
alert(undefined == 0); // false
alert(null == 0); // false
alert(‘\t\r\n‘ == 0); // true

O(∩_∩)O~晕了吧!但如果上面的操作都使用===,返回的结果都是false, 因为两个操作数的类型不同。

三、逻辑运算符

JavaScript有三个逻辑运算符:逻辑与(AND)、逻辑或(OR)、逻辑非(NOT)。其中逻辑与(&)和逻辑或(||)具有短路原则。

即对于a && b, 如果a为假,b不被计算,结果直接返回false;对于a || b, 如果a为真,b不会被计算,结果直接返回true. 这个特性可以为我们带来便利,比如:

在访问对象的属性前,我们先判断一下对象是否为空:
var name = o && o.getName();
设置缺省值:
var name = otherName || "default";
避免为变量赋null 或undefined 值。
var obj = oneObject || twoObject; //把其中一个有效变量值赋给obj

四、位运算符

位运算符有七种,分别是:位非NOT(~)、位与AND(&)、位或OR(|)、位异或XOR(^)、左移(<<)、有符号右移(>>)、无符号右移(>>>)。
在C++中,位运算符处理的是整数。JavaScript没有整数类型,只有双精度的浮点数。因此,位操作符把它们的数字运算数先转换成整数,接着执行计算,然后再转换回去。在C++中,这些位运算符接近于硬件处理,所以非常快。JavaScript的执行环境一般接触不到硬件,所以非常慢。JavaScript很少被用来执行位操作。

未完待续......

时间: 2024-10-28 02:16:06

JavaScript 知识点之运算符的相关文章

JavaScript逻辑and运算符详解

一.AND详解: 在JavaScript中,逻辑 AND 运算符用双和号(&&)表示. 需要说明的是:逻辑AND运算的运算数可以是任何类型的,不止是Boolean值,如果某个运算数不是原始的Boolean型值,逻辑AND运算并不一定返回Boolean值. 逻辑AND运算符的运算行为如下: 如果一个运算数是对象,另一个是 Boolean 值,返回该对象. 如果两个运算数都是对象,返回第二个对象. 如果某个运算数是 null,返回 null. 如果某个运算数是 NaN,返回 NaN. 如果某个

JavaScript中“typeof”运算符与“instanceof”运算符的差异

在JavaScript中,运算符“typeof”和“instanceof”都可以用来判断数据的类型,那么这两个运算符有什么不同之处呢? 差异一:使用方式不同. 最明显的差异就是这两个运算符的使用方式了.“typeof”是一元运算符,其后直接跟需要进行类型判断的数据:而“instanceof”是二元运算符,其左侧是需要判断的数据,右侧是用于比较的类型. //typeof是一元运算符: var amount = 108; console.log(typeof amout);//控制台输出“numbe

JavaScript知识点总结

JavaScript学习总结1.JavaScript是作用于网络和HTML的一个编程语言.2.JavaScript代码必须放在<script></script>标签之间,Javascript现在是HTML默认的脚本语言,所以在<script>标签中不需要声明脚本语言为JavaScript,即不需要type="text/javascript".3.可以添加任意数量的脚本在HTML document中,JavaScript可以放在<head>

javascript的void运算符

javascript的void运算符:void运算符对任何值都会返回undefined.此运算符一般用来避免输出不应该出现的值.实例代码: var a; a=2; document.write(void(a)); 输出结果:undefined . <a href="javascript:void(window.open('about:blank'))">点击打开新窗口</a> 以上代码在网页中经常用到.window.open()方法会返回新窗口对象的引用,并且该

JavaScript中的运算符

JavaScript中的运算符,JavaScript是具有全范围的运算符,包括算术.逻辑.位.赋值以及其他某些运算符. 计算逻辑位运算赋值杂项 描述符号描述符号描述符号描述符号描述符号 负值-逻辑非!按位取反~赋值=删除deletewww.mlybyby.com 递增++小于<按位左移<<运算赋值oP=typeof 运算符typeof 递减--大于>按位右移>>voidvoid 乘法*小于等于<=无符号右移>>>instanceofinstanc

JavaScript学习系列7 -- JavaScript中的运算符

今天,我们来说一说JavaScript中的运算符,首先我们来讲一讲 一元运算符 JavaScript中的一元运算符有以下几种 1. delete delete 运算符主要用于删除对以前定义的对象属性或者方法的引用, 举个例子如下 var myObj = new Object(); // 这一句和 var myobj = new Object(); 等价 myObj.name = "Luke"; alert(myObj.name); // 输出 "Luke" dele

JavaScript知识点1

一  JS变量 1--命名: 由英文字母.数字.下划线组成,首字母为字母或下划线或美元符号$.避免使用关键字和保留字. 变量名区分大小写. 变量名两种写法: [1]驼峰命名法:首字母小写,剩下每个单词的首字母大写:单词与单词间用下划线分隔:每个单词的首字母都大写 [2]匈牙利命名法:变量名=类型+对象描述,如oBtn,o表示Object对象类型,Btn表示按钮之类的 2-- 声明 var .let.const. 未声明直接使用的变量直接成了全局变量,不推荐. Ps:var声明的变量会提前到函数体

JavaScript基础——变量-运算符-流程控制语句

JavaScript组成 一个完整的 JavaScript 实现是由以下 3 个不同部分组成的: ECMAScript:描述了该语言的语法和基本对象: 文档对象模型(Document Object Model,简称DOM)):描述处理网页内容的方法和接口: 浏览器对象模型(Browser Object Model,简称BOM)):描述与浏览器进行交互的方法和接口. 变量 变量类型:object string function boolean undefined null number JavaS

[2016-02-09][javascript][表达式与运算符]

算术运算符 + - * / % ++ -- ++ -- 运算和C++的类似,也有前缀和后缀形式 不过,javascript中浮点类型等也支持++ --运算,效果 就是自增(减) 1, bool 类型,++ -- 运算完之和,变量变成 number 非数值类型,实际上就是先隐式转换成 数值类型,在进行自增自减运算 注意:后缀++,在自增之前,类型已经转换 1 2 3 4 var b = true; document.write("</br>"); document.write