首页 > 编程语言 >JavaScript复习——01

JavaScript复习——01

时间:2023-10-22 10:44:27浏览次数:34  
标签:01 转换 复习 JavaScript 类型 let typeof 字符串 console

这是我用于复习我一年前学习的JavaScript的笔记,由于一年过去了,我大概已经4~5个月没有写过什么代码,所以需要整理自己的知识体系,如果文章出错,也希望大家评论给我改错

JavaScript的类型

JS中的类型有以下几种:

  • Number(数字类型)
  • BigInt (大数类型)
  • String(字符串类型)
  • Boolean (布尔类型)
  • null (空值类型)
  • undefined(未定义类型)
  • Symbol (符号类型)

Number类型 与 BigInt 大数类型

JS中的数字并不是无限大的,当我们超过JS的范围,就会显示近似值
由于计算机底层保存的数据是通过二进制,所以JS在进行小数运算的时候,精确度也是存在一定的问题的,我们一般引入其它的东西帮助我们进行计算

Infinity是数字类型的一个字面量,表示特殊值无穷
NaN也是一个数字类型的字面量,表示非数字型

let a = 10;
a = 10.5;
a = 3.14;
console.log(a)

如果我们需要表示其它进制的数字的话,就按下面的写法

// 二进制
let a = 0b;
// 八进制
let b = 0o;
// 十六进制
let c = 0x;

BigInt大数

注意:

  1. 大数可以表示所有范围的数值,前提是你的内存够大
  2. 大整数只能和大整数的类型进行计算,不能和普通的数字类型进行计算
let a = 99999999999999999999999999999999999999n;

类型检查

我们可以使用typeof来检查我们值的类型

注意:

  1. 在JS中只有值才有类型,变量是没有类型的(因为JS是弱类型的语言)
  2. typeof 返回的是一个字符串
  3. 变量只是一个存储值的盒子
let a = 10;
let b = 20n;
// result Number
console.log(typeof a);
// result bigInt
console.log(typeof b);

字符串(String)

在JS中我们使用 单引号双引号 来表示字符串

注意:

  1. 单引号和双引号不能混用
  2. 普通字符串不能跨行,模板字符串可以

模板字符串

使用:

let a = `你好
呀!`;

// 模板字符串还可以嵌入变量
let name = '孙悟空';
let a = `你好${name}`;

布尔值(Boolean)

一般我们用作逻辑判断
布尔值只有两个 true 和 false
布尔值在底层本质上就是一个数字

let a = true;
let b = false;

空值(null)

空值用来表示空对象
空值只有一个null
注意:

  1. 使用typeof检查空值会显示object(使用 typeof 无法检查空值)

未定义(Undefined)

当声明变量未赋值的时候,它的值就是Undefined

为定义只有一个值undefined


符号(Symbol)

用于创建一个唯一的标识
使用 typeof 检查的时会返回Symbol

let c = Symbol()
console.log(typeof c)

类型转换

将一种数据类型转换为另外一种数据类型,我们称之为类型转换
注意:
由于数据的值的类型不可变,所以我们的类型转换其实是根据原来的值,在内存开辟一个新的空间存储转换完毕之后的值


image


转换字符串

  1. 方法一:调用toString()方法
    注意:undefined 和 null 没有 toString方法,所以不能调用这个方法
let a = 10;
// 调用 a 的toString方法
a = a.toString();
console.log(typeof a,a);

  1. 方法二:调用String()函数
    String()函数可以转换 null 和 undefined

String()函数的原理:String()函数,本质上是对于可以调用toString()函数的对象,调用它们的toString(),而对于不能调用toString()的对象如 null 和 undefined 的它们会将其转换为 "null" 和 "undefined"

let a = 10;
// 调用String()函数
a = String(a);
console.log(typeof a,a);

  1. 方法三:让数据加上一个字符串(隐式类型转换)
    其内部原理还是调用String()函数
let b = 123 + '';

转换为数字

注意:

  1. 字符串:如果字符串是一个合法的数字,那么就正常转换,但是如果是不合法的数字,就会转换为NaN
  2. 如果字符串是空串空格就会转换为0
  3. 布尔值:true转换为1,false转换为0
  4. undefined:转换为NaN
  5. null:转换为0

  1. 方法一:使用Number()函数(适用于任何类型)
let a = '123';
console.log(typeof a);

a = Number(a);
console.log(typeof a);
  1. 方法二:parseInt() 和 parseFloat() 将一个字符串转换为浮点数
    2.1. paserInt解析时,会从左往右解析字符串,直到读取到字符串所有的有效整数
    2.2. 我们也可以使用 parseInt() 进行取整
let b = '1987px';
b = parseInt(b);
console.log(typeof b,b)
  1. 方法三:通过在非数值前面加一个+号,其本质还是调用Number()函数
let a = '132';
a = +a;

布尔值

方法:使用Boolean()函数将其它类型转换为布尔值
转换:

  1. 数字:处理NaN、0是false,其余都是true
  2. 字符串:除了空串是false,其余都是true
  3. null 和 undefined 转换都是false
  4. 对象都会转换为 true
  5. 使用!,对变量进行隐式转换

标签:01,转换,复习,JavaScript,类型,let,typeof,字符串,console
From: https://www.cnblogs.com/trueasureyuki/p/17780047.html

相关文章

  • [极客大挑战 2019]FinalSQL
    参考文章:https://blog.csdn.net/qq_60829702/article/details/127445276https://blog.csdn.net/wp568/article/details/132513988......
  • ABBAC900F学习笔记325:FREELANCE2019SP1的OPC练习1
    这一篇博客我爱新浪博客发表过,地址是ABBAC900F学习笔记325:FREELANCE2019SP1的OPC练习1_来自金沙江的小鱼_新浪博客(sina.com.cn)我在这里也记录一遍今天在家做一下freelance2019SP1的OPC通讯练习。新建一个freelance项目,插入硬件和软件、OPC网关、OS等,按照以前的练习配置资源......
  • [CISCN 2019 初赛]Love Math
    原理解题过程首先进入靶场,有代码让我们审计<?phperror_reporting(0);//听说你很喜欢数学,不知道你是否爱它胜过爱flagif(!isset($_GET['c'])){show_source(__FILE__);//如果没有传递c,则高亮显示代码}else{//例子c=20-1$content=$_GET['c'];i......
  • 在JavaScript中,如何检查空字符串、未定义或空值?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中,如何检查空字符串、未定义或空值?JavaScript中是否有string.Empty,还是需要单独检查""?空字符串、未定义、空值等要检查一个真值:if(strValue){//strValue是一个非空字符串,true,42,Infinity,[],等等}要检查一个假......
  • 如何测试一个空的JavaScript对象?
    内容来自DOChttps://q.houxu6.top/?s=如何测试一个空的JavaScript对象?在AJAX请求之后,有时我的应用程序可能会返回一个空对象,例如:vara={};我如何检查是否确实如此?你可以使用带有Object.hasOwn(ECMA2022+)测试的for…in循环来检查一个对象是否有任何自己的属性:functio......
  • MDT2013自动化部署Windows系统-启动映像添加
    添加启动映像:1:打开windows部署服务控制台,右键“启动映像”,选择“添加启动映像”:2:选择启动映像文件存放位置:MDT控制台更新的启动映像存放位置:Deploymentshare\Boot\目录下:3、输入映像名称和相应说明:4、确认选定映像摘要:5、完成启动映像添加:6、完成后视图如下:接下来为大家介绍的是WDS......
  • 【洛谷 8665】[蓝桥杯 2018 省 A] 航班时间
    #[蓝桥杯2018省A]航班时间##题目描述小h前往美国参加了蓝桥杯国际赛。小h的女朋友发现小h上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。小h对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京......
  • 芯片项目介绍-01
    Linux基本操作及Gvim基本操作通常使用Linux系统进行设计#创建文件夹mkdirmyprojmkdirdesign_labscp-rf文件路径复制到的路径chmod777文件芯片产品流程综述代码设计-迭代过程综合之后会进行formalcheck,形式验证综合之后会进行初步的STAAPR之后......
  • 【洛谷 8647】[蓝桥杯 2017 省 AB] 分巧克力
    #[蓝桥杯2017省AB]分巧克力##题目描述儿童节那天有$K$位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有$N$块巧克力,其中第$i$块是$H_i\timesW_i$的方格组成的长方形。为了公平起见,小明需要从这$N$块巧克力中切出$K$块巧克力分给小......
  • 【洛谷 8597】 [蓝桥杯 2013 省 B] 翻硬币
    #[蓝桥杯2013省B]翻硬币##题目背景小明正在玩一个“翻硬币”的游戏。##题目描述桌上放着排成一排的若干硬币。我们用`*`表示正面,用`o`表示反面(是小写字母,不是零),比如可能情形是`**oo***oooo`,如果同时翻转左边的两个硬币,则变为`oooo***oooo`。现在小明的问题是:如果......