Ale*_*yuv 24 javascript ecma262
按照http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf,JavaScript有6种:undefined,null,boolean,string,number和object.
var und;
console.log(typeof und); // <-- undefined
var n = null;
console.log(typeof n); // <--- **object**!
var b = true;
console.log(typeof b); // <-- boolean
var str = "myString"
console.log(typeof str); // <-- string
var int = 10;
console.log(typeof int); // <-- number
var obj = {}
console.log(typeof obj); // <-- object
Run Code Online (Sandbox Code Playgroud)
问题1:
为什么类型为null object而不是null?
问题2:
功能怎么样?
var f = function() {};
console.log(typeof f); // <-- function
Run Code Online (Sandbox Code Playgroud)
变量的f类型function.为什么在规范中没有将其指定为单独的类型?
谢谢,
这是因为typeof如果输入是null,则定义为返回"object" ,如果输入是可调用的,则返回"function".(见11.4.3 typeof运营商.)
我不知道为什么标准是这样定义的(Crockford说这是错的).也许向后兼容.
| 归档时间: |
|
| 查看次数: |
731 次 |
| 最近记录: |