JS常见的几种类型记录和错误使用认识
在常见的工作中,总是需要判断变量是否需要指定的数据类型,才能保证整个业务逻辑不会报错
但是时间长了遇到那种很少用的情况下可能在主观上会出现误判,就会导致一系列麻烦,所以这里就自己测试后并总结留下记录,方便后面查阅和复习
编程之路啊,不管什么语言,长时间没写总是会容易忘记,还是需要复习和多写的
//对象 document.writeln(typeof({})); document.writeln('<br>'); //空字符串 document.writeln(typeof('')); document.writeln('<br>'); //非空字符串 document.writeln(typeof('沉梦')); document.writeln('<br>'); //未定义变量 document.writeln(typeof(a)); document.writeln('<br>'); //数值1 document.writeln(typeof(1)); document.writeln('<br>'); //布尔值false document.writeln(typeof(false)); document.writeln('<br>'); //函数 document.writeln(typeof(function(){var a=1;})); document.writeln('<br>'); //以下容易主观错误的类型 本来以为[]是array的 //空对象,类型是object。后面为猜测:在ES5及以前版本应该是数组,由于数组局限性比较大,在某种情况下对象和数组没区别,而且现在对象和数组可以混用,然后就统一为对象了 document.writeln(typeof([])); document.writeln('<br>'); //对象和数组混用,类型还是object document.writeln(typeof([{a:1,b:2}])); document.writeln('<br>');
执行结果如下
object string string undefined number boolean function object object
总结:
所以说不管写法是咋样的,[]、{}、[{}],这个三个都是object
但是这个可能跟浏览器ES库版本有关,有些浏览器打印出来会是array,如果不清楚是object或者array,最好是两个都加到判断条件里面
-- 展开阅读全文 --