typeof 运算符是否连续显示为一个变量分配的不同数据类型?
Does the typeof operator continuously show different data types assigned that changed for one variable?
我目前正在为要声明的变量摆弄 typeof 运算符。我在 chrome 开发人员中所做的是创建一个声明多个变量的语句,就像这样。
var x, y, z;
然后,我决定像这样为语句中的每个变量赋值。
var x = 7;
var y = 100;
var z = x + y;
当然这是一个算术表达式,所以每个变量的全部内容,一旦使用 typeof 运算符,就会显示一个表示数字的字符串。
现在我决定偷懒来展示 Javascript 的怪癖并抓住了这个。
我决定像这样将每个变量更改为未定义。
var x;
当我这样做时,我决定使用 typeof 运算符。出来的东西让我大吃一惊。
typeof (x);
字符串仍作为数字返回。
我的问题是,在上面的示例中具体发生了什么,它一直向我显示来自 typeof 运算符的数字数据类型,而实际上它实际上是未定义的?
在你的例子中,你说;
I decided to just change each variable to undefined like this.
var x;
然而,这实际上并没有将 x
设置为未定义,对于大多数实际用途来说,它实际上并没有做任何事情。
x
仍将计算为您之前分配给它的值 (7
)。
如果您将 x
设置为未定义 (x = undefined
),则 typeof 将正确反映它的新类型 (typeof x
= "undefined"
)。
var x=7;
var x;
这不会重新声明变量。变量不能真正被重新声明。
如果您想将变量更改为未定义,请执行以下操作:
var x=6;
x=undefined;
alert(typeof x);
或者您可能想删除它:
var context={x:6};
delete context.x;
alert(typeof context.x);
但是,这在最高 (window) 范围内不起作用。
变量只创建一次,所以下次只能重复使用。
var x = 1;
...
x = 2;
...
x = undefined;
如果你两次创建相同的变量,计算机将读取有数据的变量。
var x = 1;
var x = 2;//this
...
var y = 1;//this
var y;
我目前正在为要声明的变量摆弄 typeof 运算符。我在 chrome 开发人员中所做的是创建一个声明多个变量的语句,就像这样。
var x, y, z;
然后,我决定像这样为语句中的每个变量赋值。
var x = 7;
var y = 100;
var z = x + y;
当然这是一个算术表达式,所以每个变量的全部内容,一旦使用 typeof 运算符,就会显示一个表示数字的字符串。
现在我决定偷懒来展示 Javascript 的怪癖并抓住了这个。
我决定像这样将每个变量更改为未定义。
var x;
当我这样做时,我决定使用 typeof 运算符。出来的东西让我大吃一惊。
typeof (x);
字符串仍作为数字返回。
我的问题是,在上面的示例中具体发生了什么,它一直向我显示来自 typeof 运算符的数字数据类型,而实际上它实际上是未定义的?
在你的例子中,你说;
I decided to just change each variable to undefined like this.
var x;
然而,这实际上并没有将 x
设置为未定义,对于大多数实际用途来说,它实际上并没有做任何事情。
x
仍将计算为您之前分配给它的值 (7
)。
如果您将 x
设置为未定义 (x = undefined
),则 typeof 将正确反映它的新类型 (typeof x
= "undefined"
)。
var x=7;
var x;
这不会重新声明变量。变量不能真正被重新声明。 如果您想将变量更改为未定义,请执行以下操作:
var x=6;
x=undefined;
alert(typeof x);
或者您可能想删除它:
var context={x:6};
delete context.x;
alert(typeof context.x);
但是,这在最高 (window) 范围内不起作用。
变量只创建一次,所以下次只能重复使用。
var x = 1;
...
x = 2;
...
x = undefined;
如果你两次创建相同的变量,计算机将读取有数据的变量。
var x = 1;
var x = 2;//this
...
var y = 1;//this
var y;