Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Which kind of boxed JS primitive is this?

License

NotificationsYou must be signed in to change notification settings

inspect-js/which-boxed-primitive

dependency statusdev dependency statusLicenseDownloads

npm badge

Which kind of boxed JS primitive is this? This module works cross-realm/iframe, does not depend oninstanceof or mutable properties, and works despite ES6 Symbol.toStringTag.

Example

varwhichBoxedPrimitive=require('which-boxed-primitive');varassert=require('assert');// unboxed primitives return `null`// boxed primitives return the builtin constructor nameassert.equal(whichBoxedPrimitive(undefined),null);assert.equal(whichBoxedPrimitive(null),null);assert.equal(whichBoxedPrimitive(false),null);assert.equal(whichBoxedPrimitive(true),null);assert.equal(whichBoxedPrimitive(newBoolean(false)),'Boolean');assert.equal(whichBoxedPrimitive(newBoolean(true)),'Boolean');assert.equal(whichBoxedPrimitive(42),null);assert.equal(whichBoxedPrimitive(NaN),null);assert.equal(whichBoxedPrimitive(Infinity),null);assert.equal(whichBoxedPrimitive(newNumber(42)),'Number');assert.equal(whichBoxedPrimitive(newNumber(NaN)),'Number');assert.equal(whichBoxedPrimitive(newNumber(Infinity)),'Number');assert.equal(whichBoxedPrimitive(''),null);assert.equal(whichBoxedPrimitive('foo'),null);assert.equal(whichBoxedPrimitive(newString('')),'String');assert.equal(whichBoxedPrimitive(newString('foo')),'String');assert.equal(whichBoxedPrimitive(Symbol()),null);assert.equal(whichBoxedPrimitive(Object(Symbol()),'Symbol');assert.equal(whichBoxedPrimitive(42n),null);assert.equal(whichBoxedPrimitive(Object(42n),'BigInt');// non-boxed-primitive objects return `undefined`assert.equal(whichBoxedPrimitive([]),undefined);assert.equal(whichBoxedPrimitive({}),undefined);assert.equal(whichBoxedPrimitive(/a/g),undefined);assert.equal(whichBoxedPrimitive(newRegExp('a','g')),undefined);assert.equal(whichBoxedPrimitive(newDate()),undefined);assert.equal(whichBoxedPrimitive(function(){}),undefined);assert.equal(whichBoxedPrimitive(function*(){}),undefined);assert.equal(whichBoxedPrimitive(x=>x*x),undefined);assert.equal(whichBoxedPrimitive([]),undefined);

Tests

Simply clone the repo,npm install, and runnpm test

About

Which kind of boxed JS primitive is this?

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks


[8]ページ先頭

©2009-2025 Movatter.jp