Javascript,var name=1,“;类型名称“;给出“;字符串”;
Javascript, var name = 1, "typeof name" gives "string"?
当我编写如下的Javascript代码时,我发现了这个奇怪的问题:
var name = 1;
alert(typeof name); // this will alert "string"
var b = 1;
alert(typeof b); // this will alert "number"
我得到了"字符串"作为"名称类型",但得到了"数字"作为"b类型",然而,我认为它们都应该是"数字"
这个代码也不会运行:
var name = 1;
if (name === 1) {
alert("ok")
}
它不会发出警报,因为名称的类型是"字符串"!
我在Chrome和Safari中测试了上面的代码,它们都给出了相同的结果,那么为什么在这种情况下"typeof name"是"string"呢?为什么变量名"name"如此特殊?
这是浏览器的一种行为,其中窗口对象的某些属性(如名称和状态)将只接受字符串值,如果您分配任何其他类型的值,则该对象的toString()值将分配给它
var name = 1;
console.log(typeof name); // this will alert "string"
var status = 1;
console.log(status, typeof status); //gives '1` and string
var status = {};
console.log(status, typeof status);//gives value of status as [object Object] since that is the toString() implementation of object
var b = 1;
console.log(typeof b); //
演示:Fiddle
如果使用局部变量,则此行为不适用。。。即函数中的变量
function test(){
var name = 1;
console.log(typeof name); // this will alert "string"
var status = 1;
console.log(status, typeof status); //gives '1` and string
var status = {};
console.log(status, typeof status);//gives value of status as [object Object] since that is the toString() implementation of object
var b = 1;
console.log(typeof b); //
}
test()
演示:Fiddle
原因是window
下有一个名为name
(window.name
)的属性,并且它已经被定义为字符串。
当您声明一个没有作用域的变量时,它的作用域在window
下。
查看有关window.name
的更多信息。
相关文章:
- Javascript,var name=1,“;类型名称“;给出“;字符串”;
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 将字符串传递给给出NULL的事件侦听器
- 评估JavaScript中给出布尔表达式的字符串
- getElementById 给出结果和字符串
- 余烬/车把给出[对象对象]而不是来自JSON对象的字符串
- 从数字到字符串的转换在Javascript中给出了奇怪的数字
- 节点.js流 - 缓冲区到字符串给出 [对象对象]
- 当字符串中存在空格时,字符串比较会给出错误的输出
- Ant JavaScript 相同的字符串比较给出了错误的结果,但 char compare 给出了字符串中每个字符的
- 按数字和字符串设置新的 Date() 会给出不同的结果
- IE8 上的 JS:删除终止逗号仍会给出“预期的标识符、字符串或数字”
- jslint给出的是一个字符串,而看到的是{a}
- 给出错误值的子字符串-javascript
- JSON.parse使用正确的JSON字符串给出意外的令牌错误
- js警报框中的资源文件变量给出字符串ASCII代码问题
- 为什么'abc'.split(/(a|b|c)/)在Javascript中给出a、b、c和空字符串
- 给出字符串的Javascript在第23行没有起作用
- 导航器.userAgent没有给出完整的用户代理字符串
- Javascript String.Split()方法给出字符串