typeof的用法和注意点

简介: typeof的用法和注意点

基本数据类型和查看数据类型


1==》


js有六种基本数据类型。


String   Boolean Number null  underfined  Symbol 【6种】


但是《你不知道的javascript》的作者认为有7中。那一种是【对象】 object


现在我觉得应该是【7种】 加上对象


在引用数据类型 object 中又包括【function/array/object】


2==》


查看变量的基本数据类型使用typeof; 使用方式 typeof b


但是如果是引用数据类型的话,


推荐使用 instanceOf 去查看。变量 instanceof String


因为typeof去检查函数和对象是可以的的。


但是去检查数组,就会出错哈。


查看数据类型


var a;
console.log(typeof a);//undefined
// 如果一个变量定义了,但是没声明,它的类型和值就是underfined
var b = "heeh";
console.log(typeof b);//string
var c = null;
console.log(typeof c); //object
// 它的结果是object,总所周知,这是设计上的缺陷哈。这是一个bug
function getSay() {
    console.log("我是函数");
}
console.log(typeof getSay);//function
var obj = {
    a: 1212
}
console.log(typeof obj); //object
var arr = [12, 34, 56];
console.log(typeof arr);//object


有没有感觉奇怪。数组竟然也是Object。为啥函数不是 Object 呢???【2020-4-10】


因为typeof检查时并不严谨,遇见数组,就会出现这一种情况哈。


也就是说:数组使用typeof检查时,返回的是 Object。


现在我可以理解了:


在js种,一切都是对象。所以使用typeof检查数组,返回的是Object。


var arr = [12, 34, 56];
function a(){}
console.log(typeof arr);//object
console.log( arr instanceof Array);//true
console.log( arr instanceof Object);//true
console.log(a instanceof Function);//true
相关文章
|
7月前
|
JavaScript 前端开发
typeof的作用
typeof的作用
35 0
|
3月前
|
机器学习/深度学习 JavaScript 前端开发
JavaScript typeof, null, 和 undefined
JavaScript typeof, null, 和 undefined
60 4
|
4月前
|
JavaScript 前端开发
js确定数据类型typeof与instanceof
js确定数据类型typeof与instanceof
36 0
|
7月前
|
JavaScript 前端开发
js基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。具体案例使用演示
js基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。具体案例使用演示
87 1
|
7月前
|
JavaScript 前端开发
JavaScript基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。
JavaScript基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。
71 0
|
JavaScript 前端开发
原型链中:为什么Function.proto==Function.prototype?
原型链中:为什么Function.proto==Function.prototype?
139 0
|
存储 JavaScript 前端开发
从null、undefined、NaN的区别了解JS的原型链
由于在面试经常会遇到问题null,undefined,NaN之间的区别,因此想要深入且系统了解一下这些代表空之间的区别,以及它们底层的原理——原型链,同时还要搞明白__proto__和prototype分别是什么。
210 0
|
JavaScript 前端开发
JavaScript总结:typeof与instanceof的区别,及Object.prototype.toString()方法
JavaScript总结:typeof与instanceof的区别,及Object.prototype.toString()方法
188 0
JavaScript总结:typeof与instanceof的区别,及Object.prototype.toString()方法
|
JavaScript 前端开发 安全
JavaScript中typeof、toString、instanceof、constructor与in
JavaScript 是一种弱类型或者说动态语言。这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。
JavaScript中typeof、toString、instanceof、constructor与in
|
JavaScript
JS中typeof和instanceof的区别
JS中typeof和instanceof的区别