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

本文详细讲解了JavaScript中in运算符的工作原理,如何判断对象是否具有特定属性或方法,以及在原型链上的应用实例。同时介绍了对象字面量、属性赋值的不同方式,并探讨了条件运算符(三目运算符)在实际开发中的使用和替代if-else的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,它一般用于比赛/国际比赛,和打包工具。

三目运算符又称为三元运算符条件运算符,在多种编程语言中都有使用。它的作用是进行条件判断,可以理解为if条件判断的简化版。\[1\]一元运算符只需要一个数据进行操作,例如取反、自增、自减;二元运算符需要两个数据进行操作,例如加法、减法、乘法等等;而三元运算符则需要三个数据进行操作。\[2\]在JavaScript中,三目运算符的基本格式是:条件表达式 ? 表达式1 : 表达式2,其中条件表达式为真时返回表达式1,否则返回表达式2。\[3\]在Python中也有类似的三目运算符,但语法略有不同。 #### 引用[.reference_title] - *1* *3* [什么是三目运算符三目运算符怎么使用?](https://blog.csdn.net/zy1992As/article/details/127884410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [JAVA 系列——>三元运算符三目运算符)](https://blog.csdn.net/qq_16397653/article/details/103601970)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值