Javascript';在';显示奇怪行为的函数
我只是在用Javascript测试Javascript';在';显示奇怪行为的函数,javascript,Javascript,我只是在用Javascript测试中的操作符。当我运行类似于console.log(“文档中的cookie”)的东西时,它会记录true,但当我运行console.log(“cookiejar”中的cookie”)或将cookiejar分配给变量a,然后执行console.log(“a中的cookie”),我得到一条错误语句TypeError:invalid'in'操作数a。有人能告诉我为什么会这样吗?中的仅适用于对象,而不适用于字符串 : 5如果Type(rval)不是Object,则抛出一个
中的操作符。当我运行类似于console.log(“文档中的cookie”)
的东西时,它会记录true
,但当我运行console.log(“cookiejar”中的cookie”)
或将cookiejar分配给变量a
,然后执行console.log(“a中的cookie”)
,我得到一条错误语句TypeError:invalid'in'操作数a。有人能告诉我为什么会这样吗?中的仅适用于对象,而不适用于字符串
:
5如果Type(rval)不是Object,则抛出一个TypeError异常。运算符不会执行您认为它会执行的操作。
b中的告诉您给定对象b是否具有名为a的属性
不能在
中使用搜索字符串中的字符。用这个
'cookiejar'.indexOf('cookie')
请注意,
中的完全独立于且与之无关。是的,文档可以:@Cupidvogel,因为中的“cookie”
不是中的“cookiejar”
的属性。它只是一个子串。@Cupidvogel不,它不是。您指的是var color1=新字符串(“绿色”);颜色为1的“长度”;//返回真值
?字符串length
不是字符串green
的子字符串,但是字符串对象的属性length
@Cupidvogelfor..in
和in
完全不同for..in
在对象的可枚举属性上循环in
返回一个布尔值。@Cupidvogel yes:obj.propertyEnumerable(“propertyName”)
在b
中的a比b[a]的类型有什么好处(实际用例)!=“undefined”
?@JanDvorak Yes——已重置为undefined
,但仍存在于对象上的属性:“如果将属性设置为undefined
,但不删除它,in运算符将为该属性返回true
。@JanDvorak:b中的a肯定要短得多。此外,属性可以独立于其值是否定义而存在于对象上。@apsillers我想知道在什么情况下这才是所需的信息。@JanDvorak任何情况下未定义
都是有效值。虽然很少见,但有可能。。。e、 在元编程类型中,属性表示变量所持有的值,而属性的缺失表示变量不存在。