JavaScript规定了几种语言类型

JavaScript规定了几种语言类型

前言

首先我们来了解下javascript是什么,这里引用百度百科的说法

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格

切入正题

ps:检测数据类型的操作符typeof

undefined:未定义。【基本类型】
// 声明了但未定义值
let a;
console.log(a); // undefined
typeof(a); // "undefined"

ps:为什么有的编程规范要求使用void 0来代替undefinded,因为undefinedjavascript中是一个变量,而不是一个关键字。新版谷歌和ie8+的浏览器undefined无法被重新赋值。

number:数字。【基本类型】
// 数字类型,最大安全整数是2 ** 53 -1,即9007199254740991,大于这个值可能会失去精度
let a = 9007199254740991;
let b = 90071992547409911;
let c = NaN; // NaN是特殊的number类型
console.log(a); // 正常显示9007199254740991
console.log(b); // 失去精度
typeof(a); // "number"
typeof(c); // "number"
string:字符串。【基本类型】
// 字符串类型
let a = '变量';
typeof(a); // "string"
boolean:布尔值,true或者false,表示逻辑上的真和假。【基本类型】
// 布尔值类型
let a = true;
typeof(a); // "boolean"
null:空值。【基本类型】
// 空值
let a = null;
symbol: 独一无二的值。【基本类型】
// 独一无二的值
let a = Symbol("name");
console.log(a);// Symbol(name)
typeof(a);// "symbol"
// 相同参数 Symbol() 返回的值不相等
let b = Symbol("name"); 
a === b;// false

ps:es6 中新引入的类型,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
symbol作为属性名,是公有属性,无法被Object.keys()循环获取,可以通过 Object.getOwnPropertySymbols()Reflect.ownKeys() 取到

let obj = {};
obj[Symbol('a')] = "name";
console.log(obj);
for (let key in obj) {
  console.log('key:'+key);
}// 无输出
Object.keys(obj);// []
Object.getOwnPropertySymbols(obj);// [Symbol(a)]
Reflect.ownKeys(obj);// [Symbol(a)]
bigInt: 大整数【基本类型】
// 大整数,为解决超过最大整数的数字精度问题
let a = 111n
typeof(a);// "bigint"

ps:es10新增的基本类型,日常使用展示可以使用String转字符串或者第三方库【BigInt】来使用。

object:对象,包含function,array,date等【引用类型】
let a = [];
let b = {};
let c = ()=>{};
typeof(a); // object
typeof(b); // object
typeof(c); // object

ps:文末附上汇总文章链接《一名【合格】前端工程师的自检清单【持续更新】

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四点水的点滴记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值