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运算符
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 -- 字符串形式的表达式或语句
- 如果没有参数,返回undefined
- 如果有返回值将返回此值,否则返回undefined
- 如果为表达式,返回表达式的值
- 如果为语句返回语句的值
- 如果为多条语句或表达式返回最后一条语句的值
将这个字符串作为代码在上下文环境中执行,并返回执行的结果。
举个小例子:
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 的区别和联系
- typeof是什么?
typeof 是一个操作符,主要的目的是检测一个变量是不是基本数据类型的变量,同时也可以说是确定一个变量是字符串,数值,布尔值,还是undefined
的最佳工具。 -
typeof 示例代码
- 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示例代码?
- 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主要检测的是引用类型!