javascript 中 in操作符

in in 操作检查对象中是否有名为 property
的属性。也可以检查对象的原型,以便知道该属性是否为原型链的一部分。

  对于一般的对象属性需要用字符串指定属性的名称

?





1

2

3

var
mycar = {make: "Honda", model: "Accord", year: 1998};

"make"
in mycar  // returns true

"model"
in mycar // returns true

  对于数组属性需要指定数字形式的索引值来表示数组的属性名称(固有属性除外,如length

?





1

2

3

4

5

6

7

8

// Arrays

var
trees = new
Array("redwood", "bay", "cedar", "oak", "maple");

0 in
trees        // returns true

3 in
trees        // returns true

6 in
trees        // returns false

"bay"
in trees    // returns false (you must specify the index number,

                  // not the value at that index)

"length"
in trees // returns true (length is an Array property)

   in的右边必须是一个对象,如:你可以指定一个用String构造器生成的,但是不能指定字符串直接量的形式:

?





1

2

3

4

var
color1 = new
String("green");

"length"
in color1 // returns true

var
color2 = "coral";

"length"
in color2 // generates an error (color is not a String object)

  如果你使用delete操作符删除了一个属性,再次用in检查时,会返回false,如:

?





1

2

3

4

5

6

7

var
mycar = {make: "Honda", model: "Accord", year: 1998};

delete
mycar.make;

"make"
in mycar;  // returns false

 

var
trees = new
Array("redwood", "bay", "cedar", "oak", "maple");

delete
trees[3];

3 in
trees; // returns false

  

javascript 中 in操作符,布布扣,bubuko.com

时间: 2024-10-25 14:30:46

javascript 中 in操作符的相关文章

【转载】在JavaScript中使用操作符void返回undefined

在JavaScript中使用操作符void返回undefined技术 maybe yes 发表于2014-12-30 18:45 原文链接 : http://blog.lmlphp.com/archives/53  来自 : LMLPHP后院 在 JavaScript 函数中返回 undefined 的同时执行一个表达式,可以使用 void 关键字.大家比较熟悉的 void 的用法一般都是在链接的 href 属性中,可以屏蔽<a>标签的默认行为.请看下面的代码片段: <script>

javascript中的操作符详解1

好久没有写点什么了,根据博主的技术,仍然写一点javascript新手入门文章,接下来我们一起来探讨javascript的操作符. 一.前言 javascript中有许多操作符,但是许多初学者并不理解或曲解他们的用途,本章将会带领初学者们一起来学习一下javascript的几个常用操作符:typeof.in.delete.new. 二.学习目标 1. 深入了解javascript操作符:typeof.in.delete.new的功能及用法. 2. 剖析根本,掌握这些常用的操作符的运用场景,活学活

JavaScript中逻辑操作符“==”与“===”的区别

Summary JavaScript中,逻辑操作符“===”会先检查操作数的数据类型,对不同的数据类型会返回false. 而“==”对不同类型的操作数进行比较时,会进行类型转换后再比较. Description 在JavaScript中进行判断的两种逻辑操作符: == (相等) === (严格相等/全等) 由于JavaScript是弱类型的脚本语言(weakly typed),用于作比较的两个操作数的类型允许不一致.而这两个逻辑操作符最大的区别在于对操作数类型的容忍度. 即:如果两个操作数的数据

javascript中new操作符的原理

javascript中的new是一个语法糖,对于学过c++,java 和c#等面向对象语言的人来说,以为js里面是有类和对象的区别的,实现上js并没有类,一切皆对象,比java还来的彻底 new的过程实际上是创建一个新对象,把新象的原型设置为构造器函数的原型,在使用new的过程中,一共有3个对象参与了协作,构造器函数是第一个对象,原型对象是二个,新生成了一个空对象是第三个对象,最终返回的是一个空对象,但这个空对象不是真空的,而是已经含有原型的引用(__proto__) 步骤如下: (1)    

JavaScript中的操作符

一元自增和自减操作符,一元加和减操作符对于非数值类型都会进行Number函数转换 布尔操作符在其中一个操作数不是布尔值的情况下会根据情况返回 乘性操作符在处理特殊值的情况下分情况 A /* NaN =NaN Infinity * Infinity = Infinity,Infinity / Infinity =NaN Infinity */ 0 = NaN Infinity * A = Infinity 如果A不是数值,则会执行Number(A)转换 相等运算符会执行类型转换,全等运算符不会执行

为什么不要在 JavaScript 中使用位操作符?

如果你的第一门编程语言不是 JavaScript,而是 C++ 或 Java,那么一开始你大概会看不惯 JavaScript 的数字类型.在 JavaScript 中的数字类型是不区分什么 Int,Float,Double,Decimal 的.咳咳,我说的当然是在 ES6 之前的 JS,在 ES6 的新标准中提出了像 Int8Array 这样新的数据类型.不过这不是本文叙述的重点,暂且就不谈啦.本文将更着重地谈 JS 的数字类型以及作用于它的位操作符,而关于包装对象 Number 的更多了解可以

javascript中的递增递减操作符

javascript中递增递减属于一元操作符,所谓一元操作符,即只能操作一个值的操作符. 递增和递减操作符各有两个版本:前置型和后置型.顾名思义,前置型应该位于要操作的变量之前,而后置型应该位于要操作的变量之后. 01.前置型操作符使用: var age=29; ++age; //等于30 等同于 var age=29; age=age+1; //等于30 执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的. var num1=2; var num2=20; var num3=--nu

JavaScript 的in 操作符 (“如何判断某值是否数组中的元素”?)

在编写JavaScript时,遇到一个常见的问题"如何判断某值是否数组中的元素"?这让我想起了PHP中的in_array()函数和Python中in 操作符.但JavaScript似乎没有内置类似的函数,而其in 操作符的作用也有点不同.通过查询相关的资料,我发现JavaScript的in 操作符还是挺有用的. 一.问题让我想到in 操作符,正是因为这样一个问题:"如何判断某值是否数组中的元素"?在PHP中,您可能会这样来处理: $os = array("

PHP和Javascript中的逻辑操作符&amp;&amp;和||的比较

几乎所有的语言都有&&(且)和||(或)的逻辑操作符,&&用于判断多个表达式的时候,如果为真(true),则继续判断下一个表达式,如果为假(false),则停止表达式解析,即只有当所有表达式都为真(true),才返回真(true),如果某一个表达式为假(false),则结果就(false):而||(或)恰好相反,也是对多个表达式依次判断,如果表达式为真(true),则终止表达式的逻辑判断,其结果为真(true).这两个逻辑操作符都存在短路这个行为: &&判断