JS中 in 和 条件运算符(三目运算符)

in运算符

in运算符:对象能否使用某成员(成员包括属性和方法,方法包括对象的内置方法),如果能使用,返回true;反之,返回false。

对象是在js中是一种键值对的集合: key:value  key是字符串,value是数据表达式

//eg:
var obj = {"name":"karen",age:24};
var re = "name" in obj;  //右侧对象obj里面是否使用成员"name",能返回true,不能返回false
console.log(re); //true

看一个使用对象内置方法的例子:

//原型链知识
var re = {}.toString(); //toString();虽然没在{}写出来,但是是在原型链上有的
console.log(re);     //"[object Object]"
var obj1 = {};
var re1 = "toString" in obj1;  //"toString" 就是对象的一个内置方法名
console.log(re1); //true

eg:判断对象中是否存在某个属性 

obj :对象的意思      key:属性名

function hasProperty(obj,key){
    return key in obj;  //如果key这里不是一个变量的形式,就要加字符串
}

这里拓展一下:obj[key] = 123;  obj.key = 123;  注意两种写法区别

var key = "a";
var obj = {key:456};
obj[key] = 123;  //将变量key的值"a"取出来当作属性名,且属性值为123
obj.key = 123;   //将obj对象的key属性值变为123 (有key属性就改变,无就新添加一个key属性)
console.log(obj);  //{a: 123, key: 123}

条件运算符(三目运算符)

注:开发时建议使用if-else

expr1?A:B    //expr1表达式会做布尔判定,判定的结果为true,就会执行表达式A,否则执行B

整个三目运算表达式的结果是A或者B

结合例子看一下:

var a = 20;
var re = a>=18?20:{name:"blue"};
console.log(re); //20
function render(){
    return isLogin?<User/>:</Login>; //isLogin表达式进行布尔判定
}

 三目运算符使用:嵌套很难,所以一般能用if-else就用if-else,它一般用于比赛/国际比赛,和打包工具。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值