您的位置:首页 > Web前端 > JavaScript

Javascript学习笔记-----运算符

2013-04-08 11:59 447 查看
js字符串连接用 +,VBS字符串连接用&

JavaScript 算术运算符

算术运算符用于执行变量与/或值之间的算术运算。

给定 y=5,下面的表格解释了这些算术运算符:

运算符
意思
例如(y=5)

VBS
+

x=y+2
x=7
+
-

x=y-2
x=3
-
*

x=y*2
x=10
*
/

x=y/2
x=2.5
/ (整除是\)
%
求余数 (保留整数)
x=y%2
x=1
mod
++
累加
x=++y
x=6
++
--
递减
x=--y
x=4
--
JavaScript 赋值运算符

赋值运算符用于给 JavaScript 变量赋值。

给定 x=10 和 y=5,下面的表格解释了赋值运算符:

运算符
表达式
等价于

vbs
=
x=y
x=5
=
+=
x+=y
x=x+y
x=15
+=
-=
x-=y
x=x-y
x=5
-=
*=
x*=y
x=x*y
x=50
*=
/=
x/=y
x=x/y
x=2
/=
%=
x%=y
x=x%y
x=0
JavaScript比较运算符

比较和逻辑运算符用于测试 true 或 false。比较运算符在逻辑语句中使用,以测定变量或值是否相等。

给定 x=5,下面的表格解释了比较运算符:

运算符
描述
例子
vbs

==
等于
x==8 为 false
=

===
全等(值和类型)
x===5 为 true;x==="5" 为 false
!=
不等于
x!=8 为 true
<>

>
大于
x>8 为 false
>

<
小于
x<8 为 true
<

>=
大于或等于
x>=8 为 false
>=

<=
小于或等于
x<=8 为 true
<=

JavaScript逻辑运算符

逻辑运算符用于测定变量或值之间的逻辑。

给定 x=6 以及 y=3,下表解释了逻辑运算符:

运算符
描述
例子
vbs

&&
and
(x < 10 && y > 1) 为 true
and

||
or
(x==5 || y==5) 为 false
or

!
not
!(x==y) 为 true
not

"&&"的行为有时称作“短路”,可以利用这一特性有条件的执行代码:

if(a == b) stop() ;

(a==b)&&stop();

两段代码等价。

JavaScript条件运算符

语法 variablename=(condition)?value1:value2

例子 greeting=(visitor=="PRES")?"Dear President ":"Dear ";

in运算符

in运算符是他的左操作数是一个字符串或可以转换成字符串,右操作数是一个对象,如果右侧对象拥有名为左操作数值的属性名,表达式返回TRUE。
var point = {x:1,y:1};//定义一个对象
"x" in  point //ture
"z" in  point //false
"toString" in point //true

instanceof运算符

左操作数是一个对象,右操作数标识对象的类。
var  d= new Date();
d  instanceod; Date //true
d  instanceod;  Obiect//true
d instanceod;  NUMBER//false


eval()

eval --
执行字符串形式的JavaScript表达式或语句,并返回结果(如果有)。

eval函数语法

eval ( codes );

eval函数参数

codes -- 字符串形式的表达式或语句

eval函数返回值

如果没有参数,返回undefined

如果有返回值将返回此值,否则返回undefined

如果为表达式,返回表达式的值

如果为语句返回语句的值

如果为多条语句或表达式返回最后一条语句的值

该函数可以把一个字符串当作一个JavaScript表达式一样去执行它,具体来说,就是eval接受一个字符串类型的参数,

将这个字符串作为代码在上下文环境中执行,并返回执行的结果。

举个小例子:

var the_unevaled_answer = "2 + 3";

var the_evaled_answer = eval("2 + 3");

alert("the un-evaled answer is " + the_unevaled_answer + " and the evaled answer is " + the_evaled_answer);

如果你运行这段eval程序, 你将会看到在JavaScript里字符串"2 + 3"实际上被执行了。

所以当你把the_evaled_answer的值设成 eval("2 + 3")时, JavaScript将会明白并把2和3的和返回给the_evaled_answer。

eval函数说明

使用eval解析JSON对象

除了解析JSON对象外,eval在程序中很少使用

var json =eval("({sitename:'dreamdu',sitedate:new Date(1980, 12, 17, 12,0,0)})");
document.write(json.sitename);
document.write(json.sitedate);


结果:
dreamduSat Jan 1712:00:00 UTC+0800 1981


typeof 和 instanceof 的区别和联系

typeof是什么?

typeof 是一个操作符,主要的目的是检测一个变量是不是基本数据类型的变量,同时也可以说是确定一个变量是字符串,数值,布尔值,还是undefined

的最佳工具。

typeof 示例代码

[javascript] view
plaincopy

var a="zhangqian";

var b=true;

var c=10;

var d;

var e=null;

var f=new Object();

alert(typeof a); //string

alert(typeof b); //number

alert(typeof c); //boolean

alert(typeof d); //undefined

alert(typeof e); //object

alert(typeof f); //object

typeof应该注意的问题?

使用typeof操作符的时候,如果检测对象是函数,那么操作符返回"function" ,如果检测对象是正则表达式的时候,在Safari和Chrome中使用typeof的时候会错误的返回"function",

其他的浏览器返回的是object.
instanceof是什么?

instanceof主要的目的是检测引用类型,判断对象是Array,还是RegExp!
instanceof示例代码?

[javascript] view
plaincopy

var array=new Array();

var object=new Object();

var regexp=new RegExp();

function func(){};

var func1=new func();

alert(array instanceof Array); //true

alert(object instanceof Object); //true

alert(regexp instanceof RegExp); //true

alert(func1 instanceof func); //true

instanceof应该注意的问题?

大家都知道Object是所有对象的基类,所以在alert(array instanceof Object) 返回的结果同样也是true,还有就是instanceof的语法一定不要写错了 variable instanceof constructor !
typeof 和instanceof的联系

其实typeof和instanceof的目的都是检测变量的类型,两个的区别在于typeof一般是检测的是基本数据类型,instanceof主要检测的是引用类型!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: