avascript原始数据类型包括有object,null,undefined,boolean,number,string。
symbol从es2015开始可用,bigint从es2020开始可用。其中object是一个复杂的数据类型。
javascript是一种动态类型语言。这意味着变量不与类型相关联。换句话说,一个变量可以保存不同类型的值。
例如在下面的type.js文件中,counter变量初始化的值是120,之后被赋值为布尔值false ,然后又被赋值为字符串foo,
let counter = 120; // counter is a numbercounter = false; // counter is now a booleancounter = foo; // counter is now a string如果你需要知道当前变量存储的值类型,可以使用javascript的typeof运算符,获得变量的数据类型。
let counter = 120;console.log(typeof(counter)); // numbercounter = false; console.log(typeof(counter)); // booleancounter = hi;console.log(typeof(counter)); // stringundefined 未定义undefined类型是只有一个原始类型的值undefined。默认情况下,当一个变量被声明但未初始化时,它被赋值为undefined。
在下面的示例中,我们在第一行声明一个变量counter。由于counter尚未初始化,因此为其分配的值是undefined。counter的类型也是undefined。
值得注意的是,当您使用尚未声明的变量时,typeof运算符也会返回undefined。
let counter;console.log(counter); // undefinedconsole.log(typeof counter); // undefinednull 空类型null类型是第二种原始数据类型,也只有一个值null。
当你在浏览器的控制台运行代码typeof null时,代码将会返回一个对象。这是一个在javascript的bug。
虽然有人曾经提出过修复此错误,但被拒绝。原因是修复此bug会破坏许多现有站点。
在javascript数据类型null是等于undefined的,因为在javascript的null值是等于布尔值false,undefined也是如此。
let obj = null;console.log(typeof obj); // objectconsole.log(null == undefined); // truenumber 数值类型javascript使用用number类型来表示整数和浮点数。下面的语句声明一个变量并用一个整数初始化它的值。要表示浮点数,请包含一个小数点,后跟至少一个数字。
如果数字看起来是整数,例如代码let price = 200.00;,javascript会自动将浮点数转换为整数。
原因是javascript总是希望使用更少的内存,因为浮点值使用的内存是整数值的两倍。
如果要获取数值类型的范围,可以打开浏览器控制台运行代码number.min_value获取最小值和运行代码number.max_value获取最大值。
let num = 100;let price= 12.5;let discount = 0.05;nan 非数值类型nan代表非数值。它是一个特殊的数值,表示一个无效的数字。当强制转换字符串为值时,它会返回nan。
nan有两个特点。第一特点是所有与nan的运算都会返回nan ,例如代码console.log(nan/2);。
第二个特点是nan不等于任何值,包括它自己本省,例如代码console.log(nan == nan);。
console.log('a'/2); // nan;console.log(nan/2); // nanconsole.log(nan == nan); // falsestring 字符串类型在javascript,字符串是零个或多个字符的序列。字符串文字以单引号 '或双引号 开始和结束。
以双引号开头的字符串必须以双引号结尾。同样,以单引号开头的字符串也必须以单引号结尾。
如果要在字符串中使用单引号或双引号,则需要使用反斜杠对其进行转义。例如代码let message = 'i\\'m also a valid string';
javascript字符串是不可变的。这意味着它一旦创建就无法修改。但是,您可以从现有字符串创建新字符串。
在string.js例子中首先,声明str变量并将其初始化为'javascript'。其次,使用加号运算符组合'javascript'与' string',使其值成功为'javascript string'。
在幕后,javascript引擎创建一个新字符串来保存'javascript string'并销毁原始字符串'javascript'和'string'。
let str = 'javascript';str = str + ' string';boolean 布尔类型布尔值类型有两个字面值,分别是true和false。下面的示例声明了两个保存布尔值的变量。
javascript允许将其他类型的值转换为布尔值的true或false。要将另一种数据类型的值转换为布尔值,请使用boolean()函数。
确切的说boolean()不是函数,它是一个对象,用于创建布尔值,boolean接受一个参数,并将指定的参数转换为布尔值。
let inprogress = true;let completed = false;console.log(typeof completed); // booleanconsole.log(boolean('hi'));// trueconsole.log(boolean('')); // falseconsole.log(boolean(20)); // trueconsole.log(boolean(infinity)); // trueconsole.log(boolean(0)); // falseconsole.log(boolean({foo: 100})); // true on non-empty objectconsole.log(boolean(null));// falsesymbol 符号类型javascript在es6中添加了一个原始类型符号symbol。与其他原始类型不同,symbol符号类型没有文字形式。
要创建符号,请调用函数symbol,每次调用符号函数都会创建一个新的唯一值。
symbol值可以作为对象属性的标识符,通常使用它来创建对象的私有属性与方法数据类型仅有的目的。
let s1 = symbol();console.log(symbol() == symbol()); // falsebigint 类型**bigint 是一种内置对象,它提供了一种方法来表示大于2 ^53^ –1的整数。这原本是 javascript中可以用number表示的最大数字。 bigint**可以表示任意大的整数。
它在某些方面类似于number,但是也有几个不同点,不能用于math对象中的方法。
不能和任何number实例混合运算,两者必须转换成同一种类型。在两种类型来回转换时要小心,因为bigint变量在转换成number变量时可能会丢失精度。
要创建bigint数字可以在一个整数的后面加追加字母n ,例如10n,或者调用函数 bigint()并传递一个整数值或着是字符串的数字。
如果传递的是字符串的数字, bigint() 将会强制转换字符串类型为数值。
const thebiggestint = 9007199254740991n;const alsohuge = bigint(9007199254740991);object 对象类型在javascript,对象是属性的集合,每个属性都定义为键值对。对象的属性名称可以是任何字符串或者符号symbol的值。
如果属性名称不是有效标识符,您可以在属性名称周围使用引号。例如,如果对象的属性名称是full-name,则必须将其放在引号中。
对象的属性不仅可以保存简单值,也可以保存复杂的数据类型对象。
let contact = { firstname: 'web', lastname: 'myfreax', 'full-name':'web@myfreax' email: 'web@myfreax.com', phone: '408555-9999', address: { building: '4000', street: 'north 1st street', city: 'san jose', state: 'ca', country: 'usa' }}要访问对象的属性,您可以使用点符号. 或者类似数组的符号[]。当要访问属性嵌套的对象时,也可以继续使用点符号.访问嵌套的属性。
如果你访问一个不存在的属性,你会得到一个未定义的值。
console.log(contact.firstname);console.log(contact.lastname);console.log(contact.age); // undefinedconsole.log(contact['phone']); // '(408)-555-9999'console.log(contact['email']); // 'web@myfreax'console.log(contact['address']['building']); // '4000'console.log(contact.address.building); // '4000'结论javascript的基本类型是number、string、boolean、null、undefined和symbol以及bigint和复杂类型对象object。
无人飞行器高清无线视频传输的解决方案
I2C通讯协议
K8S之长连接负载均衡不均如何解决
四导线电阻压力传感器的误差补偿
大电流弹片微针模组在3C锂电池中的作用
浅谈Javascript数据类型
手机芯片正在处于全面缺货状态?
JTAG vs SWD区别
兰州软件园建成基本覆盖全市主次干道的通信管网2900多公里
什么是ai人工智能
TDA9178各引脚功能及电压
电子封装技术革新:引领电子产品迈向更高可靠性的未来
深入了解ARMv9对不可屏蔽中断的支持
芯片设计制造全流程步骤
基于TMS320F2812的分布式温度采集记录仪的设计与实现
把坦克世界移动视频游戏变成一个AR体验会是什么样的感觉呢?
浅谈电梯的电气控制系统故障分析
iphone15外观曝光
预计2027年全球无刷电机市场规模将达到242亿美元
小米6最新消息:4月底发售