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

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);     


结果:

dreamdu

Sat Jan 1712:00:00 UTC+0800 1981


typeof 和 instanceof 的区别和联系

  1. typeof是什么?
          typeof 是一个操作符,主要的目的是检测一个变量是不是基本数据类型的变量,同时也可以说是确定一个变量是字符串,数值,布尔值,还是undefined
    的最佳工具。
  2. typeof 示例代码
    [javascript]  view plain copy
    1. var a="zhangqian";  
    2. var b=true;  
    3. var c=10;  
    4. var d;  
    5. var e=null;  
    6. var f=new Object();  
    7.   
    8. alert(typeof a); //string  
    9. alert(typeof b); //number  
    10. alert(typeof c); //boolean  
    11. alert(typeof d); //undefined  
    12. alert(typeof e); //object  
    13. alert(typeof f); //object  
  3. typeof应该注意的问题?
       使用typeof操作符的时候,如果检测对象是函数,那么操作符返回"function" ,如果检测对象是正则表达式的时候,在Safari和Chrome中使用typeof的时候会错误的返回"function",
    其他的浏览器返回的是object.
  4. instanceof是什么?
        instanceof主要的目的是检测引用类型,判断对象是Array,还是RegExp!
  5. instanceof示例代码?
       
    [javascript]  view plain copy
    1. var array=new Array();  
    2. var object=new Object();  
    3. var regexp=new RegExp();  
    4. function func(){};  
    5. var func1=new func();  
    6.   
    7. alert(array instanceof Array);  //true  
    8. alert(object instanceof Object);  //true  
    9. alert(regexp instanceof RegExp);  //true  
    10. alert(func1 instanceof func);  //true  
  6. instanceof应该注意的问题?
        大家都知道Object是所有对象的基类,所以在alert(array instanceof Object) 返回的结果同样也是true,还有就是instanceof的语法一定不要写错了 variable instanceof constructor !
  7. typeof  和instanceof的联系
         其实typeof和instanceof的目的都是检测变量的类型,两个的区别在于typeof一般是检测的是基本数据类型,instanceof主要检测的是引用类型!


你可能感兴趣的:(javascript)