【JS】关键词 in
2017-08-17 10:14
274 查看
今天同学问我一个题目,觉得挺有意思,一开始我答错了,后来根据现象,大概明白了 它的意思!
<script>
var a = [1,2,3]
delete a[2]
alert(2 in a)
</script>
alert出来的是:
A: true
B:false
-------------------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------
答案是:B
那么,是为什么呢?
这个就得说道js中的关键词 in 了!
关键词in在js中是对于数组或者对象属性进行的循环/迭代操作。
格式:变量 in 对象
当对象是数组时:返回的是变量在数组中位置的索引;
当对象是对象时:返回的是对象的属性;
故上面2 in a 返回的是a[2]位置的索引,而a[2]已被delete,所以,返回的是false;
---------------------------------------------------------------------------------------------------for ... in ... ------------------------------------------------------------------------------------------------
下面来说说in的一些用法案例
案例一:变量 in 数组
<script>
var a = [1,2,3]
delete a[2]
for(var i in a){
alert(a[i])
}
</script>
alert出来的结果是:1 2
案例二:变量 in 对象
<script>
var a = {m:"哈哈",n:[1,2]}
for(var i in a){
alert(a[i])
}
</script>
alert出来的结果是:哈哈 1,2
案例三:变量 in 对象
<script>
var a = {m:"哈哈",n:[1,2]}
alert("n" in a)
</script>
alert出来的 true
<script>
var a = [1,2,3]
delete a[2]
alert(2 in a)
</script>
alert出来的是:
A: true
B:false
-------------------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------
答案是:B
那么,是为什么呢?
这个就得说道js中的关键词 in 了!
关键词in在js中是对于数组或者对象属性进行的循环/迭代操作。
格式:变量 in 对象
当对象是数组时:返回的是变量在数组中位置的索引;
当对象是对象时:返回的是对象的属性;
故上面2 in a 返回的是a[2]位置的索引,而a[2]已被delete,所以,返回的是false;
---------------------------------------------------------------------------------------------------for ... in ... ------------------------------------------------------------------------------------------------
下面来说说in的一些用法案例
案例一:变量 in 数组
<script>
var a = [1,2,3]
delete a[2]
for(var i in a){
alert(a[i])
}
</script>
alert出来的结果是:1 2
案例二:变量 in 对象
<script>
var a = {m:"哈哈",n:[1,2]}
for(var i in a){
alert(a[i])
}
</script>
alert出来的结果是:哈哈 1,2
案例三:变量 in 对象
<script>
var a = {m:"哈哈",n:[1,2]}
alert("n" in a)
</script>
alert出来的 true
相关文章推荐
- React Native 运行报错:Cannot find entry file index.android.js in any of the roots
- js的for-in
- js object.create()、Object.defineproperty()、,Object.keys()...for..in,for..each
- jsdom + jQuery in 5 lines with node.js
- JS之For---in 语句
- Inout 关键词
- setTimeout,setInterval,process.nextTick,setImmediate in Nodejs
- static 关键词 in c#
- 推荐一本不错的书《Sencha Ext JS 5 Bootcamp in a Book》
- ANGULARJS DIRECTIVE FOR SHOWING CONTENT IN A NEW WINDOW
- 浅谈js之字面量、对象字面量的访问、关键字in的用法
- Promise in AngularJS
- JS:Trim() in javascript, how to define a function of checkinput for a WebControl(ascx)
- Js实现类似PHP中的in_array方法
- From Ruby array to JS array in Rails- 'quote'?
- 【原】Cannot find entry file index.ios.js [index.android.js] in any of the roots
- JSLink to render links list into 2 compartments in webpart section
- js 中的in_array
- in.js
- [RxJS] Marble diagrams in ASCII form