JS - 基本数据类型的使用和定义

JavaScript的基本数据类型

  • 字符串(String):用于表示文本数据,例如:"Hello, World!"。
  • 数字(Number):用于表示数值,包括整数和浮点数,例如:42, 3.14。
  • 布尔值(Boolean):用于表示逻辑值,包括true和false。
  • 空(Null):表示一个空值或不存在的值。
  • 未定义(Undefined):表示一个未定义的值。
  • 符号(Symbol):ES6引入的一种数据类型,表示独一无二的值。
  • 大整数(BigInt):ES11引入的一种数据类型,用于表示任意精度的整数。

注释

js 的注释其实没啥好说的,就///**/

字面量和变量

在js中,声明变量用var进行声明,声明和赋值可以一步进行。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
    /*
     *声明变量用var进行声明,声明和赋值可以一步进行
     */
    var a=114514;
    alert(a+a);
    console.log(a);
    document.write(a);
    </script>
</head>
<body>
    
</body>
</html>

标识符的使用

在JavaScript中,标识符用来命名变量、函数、属性等名称,有如下规则:

  • 只能包含字母,数字,下划线,美元符号。
  • 不能以数字开头
  • 区分大小写
  • 不能使用JavaScript的保留字作为标识符。例如:if、else、for、 function等保留字。
  • 可以不限制长度,但建议是有意义的,描述性强一点的标识符,用以提高代码的可读性。
    保留字
plaintext 复制代码
break
case
catch
class
const
continue
debugger
default
delete
do
else
export
extends
finally
for
function
if
import
in
instanceof
new
return
super
switch
this
throw
try
typeof
var
void
while
with
yield

中文作为标识符(不建议使用)

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
    var 汗滴禾下土=114514;
    document.write(汗滴禾下土);
    </script>
</head>
<body>
    
</body>
</html>

字符串

在JavaScript中,字符串是一种基本数据类型,用于表示文本数据。字符串可以包含字母、数字、符号等字符,并用引号(单引号或双引号)括起来。关于JavaScript字符串的重要特点:

  • 创建字符串:可以使用单引号(')或双引号(")来创建字符串。例如:let str = 'Hello, World!'; 或 let str = "JavaScript is awesome!";

  • 字符串长度:可以使用字符串的length属性来获取字符串的长度。例如:let length = str.length;

  • 字符串连接:可以使用加号(+)来连接字符串。例如:let fullName = firstName + ' ' + lastName;

  • 访问字符:可以通过索引来访问字符串中的单个字符,索引从0开始。例如:let firstChar = str[0];

  • 字符串方法:JavaScript提供了许多内置方法来操作字符串,如substring、indexOf、toUpperCase等。例如:let upperCaseStr = str.toUpperCase();

  • 模板字符串:ES6引入了模板字符串,使用反引号(`)来创建,可以在字符串中插入变量和表达式。例如:

js 复制代码
let name = 'Alice';
let greeting = `Hello, ${name}!`;
  • 转义字符 :可以使用反斜杠(\)来转义特殊字符,如换行符(\n)、制表符(\t)等。例如:let escapedStr = 'This is a \'quoted\' text.';
js 复制代码
 var cn01='我说:"今天天气真不错!"';
     document.write(cn01);
     var cn02='我说:"今天天气真不错!"'';
     document.write(cn02);
     alert(cn01);

Number

Number是一种基本数据类型,用于表示数值(整数或浮点数)。

  • 整数和浮点数:Number可以表示整数和浮点数,例如:42, -3.14。
  • 数值范围:JavaScript中的Number类型是双精度64位浮点数,可以表示的数值范围为±5 x 10^-324 到 ±1.7976931348623157 x 10^308。
  • 数值操作 :可以对Number类型进行数学运算,如加减乘除等。例如:let sum = 10 + 5;
  • NaN:NaN(Not a Number)是一个特殊的Number值,表示一个非数值。当数学运算无法产生有效的数值时,会返回NaN。
  • Infinity :Infinity表示正无穷大,-Infinity表示负无穷大。例如:let positiveInfinity = Infinity;
  • 数值方法:JavaScript提供了一些内置方法来操作Number类型,如toFixed、parseInt、parseFloat等。
  • 数值转换 :可以使用parseInt和parseFloat方法将字符串转换为数值。例如:let num = parseInt('42');
  • 数值检测 :可以使用isNaN方法来检测一个值是否为NaN。例如:let result = isNaN(42);
js 复制代码
    /*
     *在JS中所有的数值都是Number类型
     *包括整数和浮点数(小数)
     * 用运算符typeof来检查变量的类型
     * JS中可以表示的数字的最大值------Number.MAX_VALUE
     * 数字如果比Number.MAX_VALUE表示的数字大,那么就会显示Infinity
     * NaN是一个特殊的数字,表示Not A Number
     * JS进行浮点运算,那么可能得到的是不准确的结果
     * 精确度比较高的运算,千万不要用JS
     */
    var a=114514;//数值
    var b="1919810";//字符串
    var c=Number.MAX_VALUE;
    var d=1.1+1.119
    alert(typeof a);
    alert(typeof b);
    document.write(typeof a);
    document.write("<br>");
    document.write(typeof b);
    console.log(typeof a);
    console.log(typeof b);
    console.log(d);

布尔值

这个没啥可介绍的,就true和false

js 复制代码
    /*
     *Boolean 布尔值
     *布尔值只有两个,主要用来做逻辑判断
     * true 真 false 假
     * 使用typeof检测时,返回boolean
     */
    var bool1=true;
    var bool2=false;
    document.write(bool1);
    document.write("<br>");
    document.write(bool2);
    console.log(typeof bool1);
    console.log(bool2);

Null与Undefind

Null表示一个空值或不存在的值。当变量被赋值为null时,表示该变量的值为空。

Undefined(未定义):Undefined表示一个未定义的值。当变量声明但未赋值时,其默认值为undefined。

例如:

js 复制代码
/*
     *Null类型的值只有一个,就是null
     *null专门用来表示一个为空的对象
     * 使用typeof检查null值,会返回object
     * Undefined()类型的值只有一个,就是undefined
     * 当声明一个变量,但是并不给变量赋值时,它的值就是undefined
     * 未定义指声明了变量,但是没有给变量赋值
     * 
     * 
     */
    var a=null;
    var b;
    console.log(typeof a);
    console.log(a);
    console.log(typeof b);
    console.log(b);

Symbol(符号)

Symbol是ES6引入的一种数据类型,用于表示独一无二的值。每个Symbol值都是唯一的,不会重复。例如:

js 复制代码
const symbol1 = Symbol('symbol');
const symbol2 = Symbol('symbol');
console.log(symbol1 === symbol2); // 输出为false

BigInt(大整数)

BigInt是ES11引入的一种数据类型,用于表示任意精度的整数。它可以表示比Number类型更大的整数值。例如:

js 复制代码
const bigIntValue = 1234567890123456789012345678901234567890n;
console.log(bigIntValue); // 输出为1234567890123456789012345678901234567890n

强制数据类型转换为String

js 复制代码
    /*
     *强制类型转换
     *指将一个数据类型转换为其他数据类型
     *类型转换主要指,将其它数据类型转换为String,Number,Boolean
     */

     /*
     *类型一 将其他的数据类型转换为String
     *调用被转换数据类型的toString()方法
     *该方法不会影响到原变量,他会将转换的结果返回
     *不存在null和undefined的调用方法,调用后就会报错

     类型二 调用String()函数,并将被转换的数据作为参数传递给函数
     */
    var a=123;
    a=a.toString();
    console.log(typeof a);
    console.log(a);

    var b=321;
    b=String(b);
    console.log(typeof b);
    b=Number(b);
    console.log(typeof b);

强制转换为Number

js 复制代码
    /*
     *将其他的数据类型转换为Number
     *如果是纯数字的字符串,则直接将其转换为数字
     *如果字符串有非数字的内容,直接转换为NaN
     *如果字符串是一个空串或者全是空格,则转换为0
     *true转化成Number类型后 值是1
     *false转化成Number类型后 值是0
     *null转化成Number类型后 值是0
     *undefined转化为Number类型后 值是NaN
     */
    var a="123"
    console.log(typeof a);
    console.log(a);
    a=Number(a);
    console.log(typeof a);
    console.log(a);

    a="123abc";
    console.log(typeof a);
    console.log(a);
    a=Number(a);
    console.log(typeof a);
    console.log(a);

    a=" ";
    console.log(typeof a);
    console.log(a);
    a=Number(a);
    console.log(typeof a);
    console.log(a);

    a=true;
    console.log(typeof a);
    console.log(a);
    a=Number(a);
    console.log(typeof a);
    console.log(a);

    a=false;
    console.log(typeof a);
    console.log(a);
    a=Number(a);
    console.log(typeof a);
    console.log(a);

    a=null;
    console.log(typeof a);
    console.log(a);
    a=Number(a);
    console.log(typeof a);
    console.log(a);

    a=undefined;
    console.log(typeof a);
    console.log(a);
    a=Number(a);
    console.log(typeof a);
    console.log(a);

    /*
     * 转换方式二 专门用来对付字符串
     * parseInt()把一个字符串转换为一个整数
     * parseFloat()把一个字符串转换为一个浮点数
     * parseInt()只能取出整数
     * 他们在转化非字符串时,先将其转化为字符串,然后再操作
     * 比如布尔值true,先转化为"true",然后再转化,最后判定值为NaM
     */
    var c="123px123";
    console.log(typeof c);
    console.log(c);
    c=parseInt(c);
    console.log(typeof c);
    console.log(c);

其他进制的表示方式

可以使用不同的方式表示其他进制的数值,包括二进制、八进制和十六进制。

  • 二进制(Binary):使用前缀0b或0B表示二进制数值。例如:
javascript 复制代码
let binaryValue = 0b1010; // 二进制数值10
console.log(binaryValue); // 输出为10
  • 八进制(Octal):使用前缀0o或0O表示八进制数值。例如:
javascript 复制代码
let octalValue = 0o777; // 八进制数值511
console.log(octalValue); // 输出为511
  • 十六进制(Hexadecimal):使用前缀0x或0X表示十六进制数值。例如:
javascript 复制代码
let hexadecimalValue = 0xFF; // 十六进制数值255
console.log(hexadecimalValue); // 输出为255

示例

js 复制代码
    /*
     *在JS中,如果需要表示十六进制的数字,则需要以0x开头
     */
    a=0x114514;
    console.log("十六进制"+a);
    
    /*
     *如果需要表示八进制的数字,则需要以0开头
     */
    b=0175;
    console.log("八进制"+b);

    /*
     *如果需要表示二进制的数字,则需要以0b开头
     */
    c=0b111110101101010101;
    console.log("二进制"+c);

    /*
     *但不是所有浏览器都支持,我用的是双核浏览器,支持运行
     *可以在parseInt()中传递一个第二参数,来指定数字的进制
     *比如指定070按11进制计算,转为十进制后就是77,其他的同理
     *控制台显示的数字都是默认十进制
     */
    a="070";
    a=parseInt(a,10);
    console.log(typeof a);
    console.log(a);

将其他数据类型转换为布尔类型

  • Boolean() 函数:可以使用Boolean()函数将其他数据类型转换为布尔类型。
js 复制代码
Boolean(0); // false
Boolean(""); // false
Boolean(null); // false
Boolean(undefined); // false
Boolean(NaN); // false
Boolean(false); // false

Boolean(1); // true
Boolean("Hello"); // true
Boolean([]); // true
Boolean({}); // true
Boolean(true); // true
  • 逻辑非(!)运算符:使用逻辑非运算符(!)可以将其他数据类型转换为布尔类型。它会对操作数进行逻辑非运算,并返回相应的布尔值。例如:
js 复制代码
!0; // true
!""; // true
!null; // true
!undefined; // true
!NaN; // true
!false; // true

!1; // false
!"Hello"; // false
![1, 2, 3]; // false
!{}; // false
!true; // false

在进行布尔类型转换时,JavaScript会遵循一些规则。以下值会被转换为false,其他值会被转换为true:

paintext 复制代码
false、0、空字符串("")、null、undefined、NaN
js 复制代码
   /*
     *将其他的数据类型转换为Boolean
     *-使用Boolean()函数
     *数字转布尔类型,除了0和NaN,其余的都是true
     *字符串转布尔类型,除了空串(即什么都没有,空格不视为空串),其余的都是true
     *null和undefined转为布尔类型,都是false
     *对象(object)转为为布尔类型,也是true
     */
    var a=123;//true
    a=-123;//true
    a=0;//false
    a=Infinity;//true
    a=NaN;//false  NAN=Not a Number
    //调用Boolean()函数来将a转换为布尔值
    a=Boolean(a);
    console.log(typeof a);
    console.log(a);
相关推荐
Kisorge10 分钟前
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
c语言·开发语言
轻口味1 小时前
命名空间与模块化概述
开发语言·前端·javascript
前端小小王2 小时前
React Hooks
前端·javascript·react.js
迷途小码农零零发2 小时前
react中使用ResizeObserver来观察元素的size变化
前端·javascript·react.js
晓纪同学2 小时前
QT-简单视觉框架代码
开发语言·qt
威桑2 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服2 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生2 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
娃哈哈哈哈呀2 小时前
vue中的css深度选择器v-deep 配合!important
前端·css·vue.js