JavaScript规定了几种语言类型

Posted 一个很王德发的学渣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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新增的基本类型

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

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

以上是关于JavaScript规定了几种语言类型的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript规定了几种语言类型

JavaScript规定了几种语言类型

前端知识点查缺补漏

JavaScript对象的底层数据结构是什么

JavaScript对象的底层数据结构是什么

JavaScript对象的底层数据结构是什么