js中的运算符和流程控制,循环,判断语句都和C#基本一致,但又有其独特的运算符。
typeof运算符
获得数据的数据类型,如number,string等。
语法:
string typeof(变量);
如 var num=123;
typeof num;或typeof(num);
等于和不等于(2种)
== 和 !=
只看结果是否相同(隐式转换的问题)
=== 和 !==
看类型与结果是否都一致
键值形式(json格式)
当对象的字面值声明方式为var o = {name1:"张三", nuam2:"李四", name3:"王五", numa4:"赵六", name5:"陈七"};
的键值对形式,可用o["name1"]取得相应的数据成员。
for-in
就是C#中foreach
for(var i in 集合) {
}
in和instanceof
在写类库的时候,或方法框架的时候,需要判断一个变量是什么类型的对象或判断这个对象是否具有某个成员,就可以使用in和instanceof运算符
in
boolean 成员字符串 in 对象;
检查这个对象是否具有该成员
var o = {name:"张三", sex:"男", say:function() {}}; alert("age" in o); alert("name" in o); alert("say" in o); //或使用如下方法 alert(!!o.age);
输出为false,true,true,false
instanceof
boolean 对象 instanceof 构造函数;
类似C#中的is运算符
var arr = "1|2|3|4|5|6".split("|"); alert(arr instanceof Array); var Person = function() {}; var Student = function() {}; var p = new Person(); alert(p instanceof Person); alert(p instanceof Student);
输出为true,true,false
|| 与 &&
在||两边如果放置的是对象,先判断左边的对象是否为true,如果是,就将左边对象返回,否则返回右边对象。(可用来代替三元表达式)
在&&两边如果放置的是对象,先判断左边的对象是否为false,如果是,就返回左边对象,并且不执行后面操作。
如果左边对象是true,就执行右边操作,并将右边对象返回。