数据运算和运算规则

1.1 js表达式

1.1.1 简单表达式和复杂表达式

1、简单表达式:仅仅由文字组成;

2、复杂表达式:更多的表达式中包含变量、函数、函数调用以及其他表达式,可以用运算符将简单表达式组合,创建复合表达式,运算符可以是js中任意的运算符。

1.1.2 赋值表达式和单值表达式

1、赋值表达式:用于变量赋值;

2、单值表达式:纯粹是被计算为单个值。

1.2 算数运算符

运算符号意义运算符号意义
+加法运算%取余数
-减法运算++累加
*乘法运算--递减
除法运算  

注意事项:

1、运算溢出:数字类型的变量有一个范围,超出范围就会导致溢出,算术运算不会自动抛出异常,因此需要自己来处理。

2、进行算术运算时,两端的值可能不是数字,那么会尝试将该数据转换为数字,如果能转换成数字,则可以进行数字运算,否则返回非数字常量NaN;

但有一个例外,就是加法运算符,因为加法运算符可以用来当作字符串运算符。因此会有另外的一些规则。

(1)当两个或多个数字使用“+”运算符时,执行加法运算符;

(2)当单个数字与其他类型的数据使用“+”运算符时,首先会将两个表达式的值转换为字符串,然后执行字符串运算。

document.write(10+new Array("40",30));    // 1040,30  首先会将数组转换成字符串

document.write(10+new Array(40,30));       // 1040,30  首先会将数组转换成字符串

(3)当多个数字与其他类型的数据使用“+”运算符时,首先会从左到右,根据运算符两边的数据类型进行判断,是采用算术运算还是字符串运算。

document.write("10"+20+5);    // 10205

document.write(10+20+"5");    // 305

 1.3 赋值运算符:用来为变量或者常量赋值,可以让程序精简,提高程序的执行效率

运算符号意义
=将右边的值赋到左边
+=将右边的值加左边的值,并将结果值赋给左边。
-=~减~~
*=~乘~~
/=~除~~
%=~取余~~
&= 
<<= 
|= 
>>= 
>>>= 
^= 

1.4比较运算符和逻辑运算符

比较运算符表:

运算符号意义
<小于
>大于
<=小于等于
>=大于等于
==等于
!=不等于
===如果两个表达式(包括它们的数据类型)相等,则结果为 true
!==与===相反

逻辑运算符表:

运算符号意义
&&并且,两边表达式必须同时为true
||或者,一边成立即可
不,非
&&=进行&&运算,并将运算结果赋给左边的表达式。
||=进行||运算,并将运算结果赋给左边的表达式。如:x||=y;=>x=x||y

===确定是否相等,取决于参数的数据类型:

(1)数字和逻辑值按值进行比较,如果它们具有相同的值,则相等。

(2)如果字符串表达式具有相同的字符数,而且这些字符都相同,则这些字符串表达式相等。

(3)表示对象、函数、数组和函数的变量按引用进行比较。如果两个变量引用同一个对象、数组或函数,则它们相等。而两个单独的数组即使具有相同数量的元素,也永远不会视为相等。

var str="abc";

var str1 = new String("abc");

var str2 = new String("abc");

var str3 = str1;

document.write(str==str1); //true

document.write(str1==str2); //false

document.write(str1==str3); //true

 

document.write(str1===str2); //false

document.write(str1===str2); //false

document.write(str1===str3); //true

 

1.4.1特殊值的比较 

document.write(NaN==NaN); //false

document.write(NaN===NaN); //false

document.write(null==undefined); //true

document.write(null===undefined); //false

 

1.5其他运算符

运算符号意义
[]用指定的元素访问数组中的元素或者实例化一个新数组,它还能访问对象的属性,方括号运算符也被称为下标运算符 
,计算表达式1,然后计算表达式2,依次类推。 
?:三元条件运算符
.访问对象的属性和方法,定义包路径。 
in计算属性是否为特定对象的一部分,经常用在for in循环中。 
instanceof计算表达式的原型链是否包含function的原型对象 
new构造器方法,用来创建实例。 
{}定义块,还可以创建并初始化一个新的Object实例。 
()对一个或多个参数执行分组计算,执行表达式的顺序计算,或者括住一个或多个参数并将它们作为参量传递给括号前面的函数。 
/如果 用在字符之前和之后,则表示字符具有字面值,并被视作一个正则表达式,而不是一个变量、字符串或其他js元素,除此之外,可用作算术的除法运算。
delete破坏对象的属性。如果在运算完成后该属性不存在,则结果为true。否则为false。 
typeof用来测量表达式的类型
void计算表达式,然后放弃其值,返回underfind

 

 

 

 

 

转载于:https://www.cnblogs.com/chengmingxiaowu/p/7661605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值