var json={ name:"mike"};
console.log("name" in json) ---> true
console.log(!"name" in json) ---> false
但为啥,基础不好,请懂的人解释下,谢谢了
console.log("age" in json) ---> false
console.log(!"age" in json) ---> false
var json={ name:"mike"};
console.log("name" in json) ---> true
console.log(!"name" in json) ---> false
但为啥,基础不好,请懂的人解释下,谢谢了
console.log("age" in json) ---> false
console.log(!"age" in json) ---> false
首先你必须要了解下字符串取反的知识了,很明显的是,1,3是没有问题的,找属性,有则为true,否为false;
但是,需要明白的是,字符串取反的问题,如下:
!‘age’
!‘name’
本身打印出来就是false,然后根据false再找属性,所以为false;
这个怎么了.....
这个是运算符的优先级问题吧..
首先 json 对象里面是有 name 属性没有 age 属性的
所有第1,3log的原因比较清楚
2,4 的原因是:
!"age" == !"name"
他们的值都为 false
在json对象里面没有
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答849 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
console.log(!"age" in json)它其实是这样运行的:
首先,计算这个!"age" ---> false, !是将其它值转换为boolean值的
然后, 计算 false in json ---> false
其实console.log(!("age" in json)) ---> true
name属性类似