繁体   English   中英

为什么分配的变量类型是数字?

[英]Why assigned variable type is number?

我有一个函数看起来像这样。

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 || {};

如果使用| ,则它将在操作数之间进行按位“或”运算。

| 按位运算符

按位运算符对此类二进制表示形式执行其操作,但它们返回标准JavaScript数值

您正在寻找逻辑运算符 ||

myfuncsettings = settings || {};

请参阅短路评估部分https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Short-circuit_evaluation

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM