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
,因为undefined
在javascript
中是一个变量,而不是一个关键字。新版谷歌和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规定了几种语言类型的主要内容,如果未能解决你的问题,请参考以下文章