JavaScript 中型别主要分为原始型别和物件型别两种
原始型别中包含七种型别,
而这些型别有各自的方法,
这些方法可以藉由包裹物件来查看,
其中只有 undefined
和 null
没有包裹物件,
每个型别所对应的包裹物件如下表所示:
型别 | 包裹物件 |
---|---|
字串(String) | new String() |
数字(Numnber) | new Number() |
布林(Boolean) | new Boolean() |
未定义(Undefined) | - |
空(Null) | - |
整数数值(Bigint) | BigInt() |
(Symbol) | Symbol() |
范例:
var a, b, c;
console.log(typeof a); // undefined
a = 0;
b = 'weiwei';
c = true;
console.log(typeof a); // number
console.log(typeof b); // string
console.log(typeof c); // boolean
从范例可以得知变数在宣告後且尚未赋予值前型别为 undefined
,
随後赋予不同型别的值,因此使用 typeof
分别会显示不同的结果
var b = null;
console.log(typeof b); // object
那麽为何 null
的型别为 object
而不是 null
呢?
因为这是 JavaScript 中的一个错误,而现在也不能修正这个错误,
原因是有许多网站利用这种错误来完成的,
一旦修正许多网站都会出错,所以将错误保留至今
console.log(typeof c); // undefined
我们看到变数 c
没有被定义为何使用 typeof
时不会出错呢?
因为这是 typeof
的针对未定义变数的保护措施,
因此使用 typeof
对未定义变数取型别时,会显示 undefined
var a = 'weiwei';
console.log(a.toUpperCase()); // WEIWEI
console.log(a.length); // 5
// 使用包裹物件查寻 a 有哪些方法可以使用
var b = new String(a);
console.log(b);
console.log(typeof b); // object
当我们要查看一个变数有哪些方法使用时,可以使用包裹物件来寻找
我们点开 String 再点开 Prototype 後,
可以看到里面有许多方法,而范例中使用的 toUpperCase()
和 length
也包含在内,
当我们使用包裹物件宣告变数时,该变数的型别为物件型别
原始型别以外的型别都是物件型别,EX:物件、阵列、函式...
范例:
var a = {};
var b = [];
var c = function(){};
console.log(typeof a); // object
console.log(typeof b); // object
console.log(typeof c); // function
我们会看见 c
的型别为 function
,
function
为物件的子型别,
我们可以使用 instanceof
来确认函式是否为物件的子型别
var c = function(){};
console.log(typeof c); // function
console.log(c instanceof Object); // true
结果为 true
,因此函式也是物件的一种
以上就是今天的内容,我们明天见!!
<<: [自然语言处理基础] 文本预处理(I):断开文本的锁练
Knative v0.20.0 requires a Kubernetes cluster v1.1...
今天来介绍关连式资料库查询方便的地方-JOIN 多表之间的连结(JOIN 用法) 用以下3个表的纪...
前端工程师说,我去交友网站找女朋友去了。 朋友问:找到了麽? 工程师说:找到了他们页面的一个 bu...
Keyword:SQLDelight,Native Driver 到24日,在iOS上呈现DB资料 ...
前言: 到了要开始处理资料的部分,因为影像资料会有档案太大或是大小不一的问题,所以都要先预设成固定的...