数据类型
在JavaScript中有8中基本数据类型,7种原始类型和1种引用类型。可以将任何类型的值存入变量。例如,一个变量可以在前一刻是个字符串,下一个就存储一个数字。
如:
let message = 'hello';
message = 123;
//没有错
JavaScript也被称为“动态类型”编程语言,编程中虽然有不同的数据类型,但是定义的变量并不会在定义之后,被限制为某一种数据类型。
Number类型
number类型代表整数和浮点数。数字可以做很多操作,比如:乘法*、除法/、加法+、减法-等等
除了常规的数字,还包括所谓的特殊数值,也属于number类型:Infinity、-Infinity、和NaN.
Infinity
代表数学概念中的无穷大,是一个比任何数都大的特殊值。
例如:
alert( 1 / 0 );
//任何数除以0都得到Infinity
alert( Infinity );
//直接在代码中使用。
NaN
代表一个计算错误。它是一个不正确的或者一个未定义的数学操作得到的结果。
比如:
alert( "not a number" / 2 );
//NaN,这样的除法是错误的
NaN是个粘性的,任何对NaNcy的进一步数学运算都会返回NaN:
alert( NaN + 1 = NaN );
alert( 3 * NaN = NaN );
alert( "not a number" / 3 - 2 );
//NaN
所以,如果在数学表示中只要有一个NaN,最终结果都为NaN。只有一个例外,NaN ** 0结果为1。
在JavaScript中做数学运算是安全的,我们可以做任何运算:除以0,将非数字字符串视为数字等等。最坏的情况下,得到一个NaN值。
BigInt类型
在JavaScript中,“number”类型无法表示大于( 2 ** 53 - 1 ),或者小于-( 2 ** 53 - 1 )的整数。这是其内部表示形式导致技术限制。
BigInt类型是最近被添加到JavaScript语言中,用于表示任意长度的整数。可以通过将n附加到整数的末尾来创建BigInt值。
//尾部的n表示这是一个BigInt类型
const bigInt = 321654651654984656465654984n
String类型
JavaScript中的字符串必须写在引号里。
let str = "hello";
let str2 = 'Single quotes are ok too'
let phrase = `can embed another ${str}`
在JavaScript中有三种包含字符串的方式。
- 双引号:"hello"
- 单引号:'hello'
- 反引号:`hello`
双引号和单引号都是简单的引用,在JavaScript中两者几乎没有区别。
反引号是扩展功能引号,它们允许我们通过将变量和表达式包装在¥{...}中,将它们嵌套在字符串中。
例如:
let name = "yang";
//嵌套一个一变量
alert( `hello, ${ name` } );//hello,yang
//嵌入一个表达式
alert( `the result is ${ 1 + 2 }`);//the result is 3
${...}内部的表达式会被计算,计算结果会成为字符串的一部分。可以将¥{...}内放置任何东西:诸如名为name的变量,或者诸如1 + 2的算数表达式,或者其他一些更复杂的。
需要注意的是,这仅仅在反引号内有效。
Boolean类型
Boolean类型只包含两个值:ture和false。
布尔值可以做比较的结果:
let isGreater = 4 < 1;
alert( isGreater );//ture
null类型
相对于其他编程语言,JavaScript中的null不是一个对不存在的object的引用或者null指针。
JavaScript中的null仅仅是代表“无”,“空”或“未知”。
undefined类型
undefined的含义是为被赋值的。如果一个变量已被声明,但未被赋值,那么它的值就是undefined。
let age;
alert( age );//弹出undefined
Object类型和Symbol类型
其他所有的数据类型都被称为原始类型,因为它们的值只包含一个单独的内容(字符串、数字或其他)。而Object则用于存储数据的集合和更复杂的实体。
Symbol类型另讲。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律