Javascript - 操作符

时间:2022-08-04 14:40:45

操作符(Operator)

void

如果void后是数字,就返回NAN,否则返回Undefined。

alert(void "hello");//跟的字符 print undefined
alert(void (1 + 1)); //跟的左括号 print undefined
alert(void 1 + 1); //跟的数字 print NAN

obj instanceof contructor

function factory() { }
var obj = new factory();
alert(obj instanceof factory); //print true obj引用factory创建

var aa = { name:"sam" };
alert(aa instanceof Object); //引用Object构造函数创建自身

property in obj

var obj = { name: "sam" }; //js中,不管是json对象还是靠new操作符创建的对象,其属性成员、函数成员总是可以通过属性的字符表示来获取,注意属性和值用:分隔而非=
alert('name' in obj); //name属性在obj的原型链中

delete obj.property

删除对象的属性或数组的元素

var obj = { name:"sam" };
delete obj.name;
alert('name' in obj); //print false var bb = ["a", "b", "c"];
delete bb[0];
alert(bb[0]); //print undefined,被删元素会以undefined占位 alert("1" in bb);//还是true,原因不明
alert("42" in bb); //false

new x

x是构造函数,只用于调用构造函数创建对象,匿名对象不能使用new操作符。

!x

取非,

1.如果x是布尔值,则取x相反的布尔值

2.如果x是一个测试"是否"的函数,如果该函数的逻辑是:是否不是,则取非后描述为:是否是。如果函数的逻辑是:是否是,则描述为是否不是。

var aa = false; 
alert(!aa);//取false的反数,print true

a=x?y:z

三元运算符,执行条件测试,简化if……else语句,如果x表达式为真,y赋给a,否则z赋给a。a是变量,x是表达式。

var aa = 1 + 1 == 12 ? 12 : "NAN";
alert(aa); //print NAN

1 + 1 == 12 ? alert("12") : alert("NAN"); //与C#不同之处在于,js中三元运算操作符可以不用把结果输出给变量

var x = 10;
var y = x == 1 ? x + 1 : x == 2 ? x + 2 : x + 0;
//等同于
if (x == 1) y = x + 1;
else if (x == 2) y = x + 2;
else y = x + 0;

typeof x

返回x的类型。可能返回的值:number、string、boolean、object、function、undefined(此时,NAN也会被当做undefined)

var b = false;
function factory() { }
typeof b == "boolean" ? alert("true") : '';
typeof factory == "function" ? alert("true") : '';

.

获取属性

var Obj = { 'x': 10, y: 20, } //也可以使用引号将属性括起来
alert(Obj.x);
alert(Obj.y);

y['x']或y[index]

获取对象的属性或数组的元素

var Obj = { 'x': 10, y: 20, } //也可以使用引号将属性括起来
alert(Obj["x"]);    
alert(Obj["y"]);

var Obj = { 'x': 10, 'y': 20, }
for (var item in Obj) {
    alert(item);//print 这样只能得到每个属性名的字符表示
    alert(Obj[item]);//print 这样可以得到每个属性的值
}

Javascript - 学习总目录