沉梦博客

php交流 JavaScript 易语言交流

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,最好是两个都加到判断条件里面

Powered By Z-BlogPHP 1.6.0 Valyria

Copyright 沉梦网络科技 Rights Reserved.