为什么分配的变量类型是数字?
问题描述:
我有一个功能看起来像这样。为什么分配的变量类型是数字?
var myfuncsettings;
var myfunc = function(settings) {
myfuncsettings = settings | {};
myfuncsettings['prop'] = 'test';
};
我得到了一个错误。
Uncaught TypeError: Cannot create property 'message' on number '0'(…)
我安慰了。
var myfuncsettings;
var myfunc = function(settings) {
console.log('typeof settings: ' + (typeof settings));
myfuncsettings = settings | {};
console.log('typeof myfuncsettings: ' + (typeof myfuncsettings));
myfuncsettings['message'] = 'test';
};
我得到了。
typeof settings: object
typeof myfuncsettings: number
有谁能告诉我我做错了什么?
答
发现管道运营商的错误用法。你必须像下面一样使用它来满足你的要求。
myfuncsettings = settings || {};
如果使用|
,那么它会做操作数之间的按位或操作。
+1
@PraveenKumar我正要对此发表评论。 :)无论如何,让我们坚持这里的规则。 –
答
我了解下投票。但这个问题不值得结束。 –
我不认为这是一个'印刷错误'。单一管道是完全有效的,它只是做一些不同于OP想要的东西。 – musefan
我不明白downvotes。你已经很好地解释了你的问题 – musefan