当前位置: 首页 > news >正文

javascript类型

Number

数值分为整数和浮点数,可使用十进制,八进制,十六进制和科学计数法来表示。

var a = 1;
var b = 1.1;
var c = 067;
var d = 0xa;
var e = 1.23e7;console.log(a, b, c, d, e);

NaN

表示一个非数值,任何涉及到 NaN 的操作都会返回 NaN,NaN 与任何值都不相等(包括自身)。

BigInt

BigInt用于表示任意长度的整数。

number类型无法安全地表示大于 $$2{53}-1$$(即`9007199254740991`),或小于$$-2-1$$的整数。

bigInt 类型与 number 类型不兼容,不能直接计算。

const bigInt = BigInt(1234567890123456789012345678901234567890);

String

String 类型必须被括在引号里。

let str = "Hello"; // 双引号
let str2 = "Single quotes are ok too"; // 单引号
let phrase = `can embed another ${str}`; // 反引号

Boolean

只有两个值:truefalse

Null

表示无,空,未知。

Undefined

表示未被赋值。

var str;
console.log(str); // undefined

Symbol

表示唯一的标识符。

let user = {name: "zhang",
};
var id = Symbol("id");user[id] = 1;console.log(user, user[id], user.id);

隐藏属性

全局 Symbol.for

通过相同的description获取相同的symbol

let id = Symbol.for("id"); // 如果该 symbol 不存在,则创建它
let idAgain = Symbol.for("id");
console.log(id === idAgain);

Symbol.keyFor

Symbol.for相反,通过symbol获取description

Symbol.keyFor 只针对 Symbol.for 创建的 symbol 有效。

let id = Symbol.for("id");
let name = Symbol("id");
console.log(Symbol.keyFor(id), Symbol.keyFor(name));
  • Symbol.hasInstance :当其他对象使用 instanceof 判断是否为该对象的实例时会调用。
  • Symbol.isConcatSpeardable:使用 cancat()是否展开。
  • Symbol.species:可以手动设置衍生对象的构造函数。
  • Symbol.match:调用 match() 时。
  • Symbol.search:调用 search()时。
  • Symbol.replace:调用 replace()时.
  • Symbol.split:调用 split()时。
  • Symbol.iterator:调用遍历器方法。
  • Symbol.toPrimitive:对象转换为原始类型时调用。
  • Symbol.toStringTag :调用 toString()时可自定义
  • Symbol.unscopables :被 with 排除的属性。

Object 类型

储存数据集合和更复杂的实体。

6 种类型判断方法

typeof

只能识别原始类型和引用类型。typeof xtypeof(x)相同,这里的括号不是typeof的一部分。它是数学运算分组的括号。

JavaScript 编程语言的设计错误,JavaScript 在存储数据的时候会转换成 32 位存储,null 的标签类型和 object 一样都是 000 链接。

console.log(typeof 1);
console.log(typeof "1");
console.log(typeof undefined);
console.log(typeof true);
console.log(typeof Symbol());
console.log(typeof null);
console.log(typeof []);
console.log(typeof {});
console.log(typeof console);
console.log(typeof console.log);

constructor

指向当前实例的构造函数。

let str = "Covid-19";
console.log(str.constructor);let number = 123;
console.log(number.constructor);let arr = [1, 2, 3];
console.log(arr.constructor);let fun = function () {};
console.log(fun.constructor);let obj = {};
console.log(obj.constructor);

instanceof

在原型链上查找其是否为构造函数实例。

原始类型类型在 JavaScript 中是没有原型链的。所以 instanceof 操作符对原始类型来说只会返回 false。

let arr = [1, 2, 3];
console.log(arr instanceof Array);let fun = function () {};
console.log(fun instanceof Function);let obj = {};
console.log(obj instanceof Object);let number = 123;
console.log(number instanceof Number);let string = "123";
console.log(number instanceof String);let boolean = true;
console.log(number instanceof Boolean);

Object.prototype.toString

可以很好的判断数据类型,封装成方法即可。

console.log(Object.prototype.toString({}));
console.log(Object.prototype.toString.call({}));
console.log(Object.prototype.toString.call(1));
console.log(Object.prototype.toString.call("1"));
console.log(Object.prototype.toString.call(true));
console.log(Object.prototype.toString.call(function () {}));
console.log(Object.prototype.toString.call(null));
console.log(Object.prototype.toString.call(undefined));
console.log(Object.prototype.toString.call(/123/g));
console.log(Object.prototype.toString.call(new Date()));
console.log(Object.prototype.toString.call([]));

鸭子类型检测

通过检查自身特定属性来判断

let str = "Covid-19";
console.log(str.toLowerCase());let arr = [1, 2, 3];
console.log(arr.join(","));

等比较

console.log(null === null);console.log(undefined === void 0);
http://www.jsqmd.com/news/42929/

相关文章:

  • ftp工具linux
  • DNS是如何工作的
  • 美国研究生申请中介怎么选?2025高性价比机构测评推荐,藤校录取率超同行的机构盘点
  • iframe代码验证器-专业测试工具
  • 浏览器渲染逻辑
  • 不作评价。
  • 2025头皮修护精华 TOP 榜:头皮护理精华植萃 + 生物肽技术,口碑厂家全解析!
  • 正则的汉字匹配问题
  • 2025年北京搬家公司联系电话推荐榜单:速搬国际搬家精选榜单
  • float类型在MySQL中的存储方式
  • 2025年东莞厂房装修公司最新榜单:聚焦仓储物流厂房装修/恒温恒湿厂房装修定制化解决方案
  • Visual Studio 2022(VS2022)激活密钥
  • 贪心:贪心中的偏序关系
  • Flink SQL如何优化查询性能
  • 版本号
  • Flink SQL优化怎样实现高效的数据处理
  • 缓冲区计算问题
  • 13. 安全上下文
  • 12. RBAC
  • JavaScript手写函数
  • 美国本科申请中介怎么选?2025口碑TOP5出炉,藤校资源/申请成功率双保障
  • 2025 最新冷库建造厂家推荐!医药 / 食品 / 物流 / 小型 / 大型 / 自动化冷库建造厂家企业品牌权威排行榜
  • 语句的执行
  • 房产信息管理系统
  • 10. 准入控制器
  • 2025 最新推荐!保定篮球俱乐部培训中心实力榜单:揭秘行业顶尖机构服务与教学优势权威指南
  • work5
  • 2025年南京高功率密度电源公司推荐,高功率密度电源/电源模块/军用电源/全国产化电源/氢能源车载直流转换器生产直销有哪些
  • 2025 年最新推荐冷库安装厂家排行榜,小型冷库 / 医药疫苗冷库 / 智能冷库设备安装实力企业口碑推荐
  • 2025美国研究生申请认准这些机构!藤校offer收割机/背景提升全流程,实力中介测评