JavaScript 基础笔记碎片-数据类型、变量与字符串操作

news/2025/11/18 9:58:48/文章来源:https://www.cnblogs.com/qiqimachatmk/p/19231512

比较运算符

JavaScript允许对任意数据类型做比较:

false == 0; // true
false === 0; // false

比较方式对比:

  • ==:自动转换数据类型后再比较(容易产生意外结果)
  • ===:严格比较,数据类型不一致直接返回 false

建议始终使用 === 进行比较。

另一些特殊值的比较:

//`NAN`这个特殊的Number与所有其他值都不相等,包括它自己:
NaN === NaN;  // false
isNaN(NaN);   // true - 正确判断方法//浮点数
1 / 3 === (1 - 2 / 3);  // false
//计算它们之差的绝对值,看是否小于某个阈值
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001;  // true - 正确比较方式

BigInt

JavaScript的Number不区分整数和浮点数,并且JavaScript的整数最大范围不是±2(63),而是±2(53)。BigInt类型可以精确表示比更大的整数,在整数后加一个n,例如9223372036854775808n,或使用BigInt()把Number和字符串转换成BigInt。可以正常进行加减乘除等运算,结果仍然是一个BigInt,但不能把一个BigInt和一个Number放在一起运算::

// 创建 BigInt
const bi1 = 9223372036854775807n;
const bi2 = BigInt(12345);
const bi3 = BigInt("0x7fffffffffffffff");// 比较
console.log(bi1 === bi3);  // true// 正常运算
console.log(1234567n + 3456789n);  
console.log(1234567n / 789n);      // 1564n(结果仍为 BigInt)// 类型混合错误
console.log(1234567n + 3456789); // 会显示Uncaught TypeError: Cannot mix BigInt and other types

变量

变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如ifwhile等。申明一个变量用var语句,比如:

var a; // 申明了变量a,此时a的值为undefined
var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1
var s_007 = '007'; // s_007是一个字符串
var Answer = true; // Answer是一个布尔值true
var t = null; // t的值是null// let 声明(现代推荐)
let name = '小明';

变量名也可以用中文,但是,请不要给自己找麻烦。

在JavaScript中,使用等号=对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次,例如:

var a = 123; // a的值是整数123
a = 'ABC'; // a变为字符串// 变量输出
console.log(x);  // 推荐:控制台输出
alert(x);        // 不推荐:弹窗干扰

strict模式

如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:

i = 10; // 全局变量

在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。

使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内(函数的概念将稍后讲解),同名变量在不同的函数体内互不冲突。在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。启用strict模式的方法是在JavaScript代码的第一行写上:

'use strict';
//不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式运行JavaScript。

字符串

是用''""括起来的字符表示。如果'本身也是一个字符,那就可以用""括起来;如果字符串内部既包含'又包含"就用转义字符\来标识,比如:

'I\'m \"OK\"!'; // I'm "OK"!

转义字符\可以转义很多字符:

//`\n`表示换行
//`\t`表示制表符`\\`; //字符`\`本身也要转义,所以`\\`表示的字符就是`\`。//ASCII字符以`\x##`形式的十六进制表示
'\x41'; // 完全等同于 'A'//用`\u####`表示一个Unicode字符:
'\u4e2d\u6587'; // 完全等同于 '中文'

多行字符串

多行字符串用\n写起来比较费事,有一种多行字符串的表示方法(ES6标准新增),用反引号...表示:

`这是一个
多行
字符串`;

反引号在键盘的ESC下方,数字键1的左边:

┌─────┐ ┌─────┬─────┬─────┬─────┐
│ ESC │ │ F1  │ F2  │ F3  │ F4  │
└─────┘ └─────┴─────┴─────┴─────┘
┌─────┬─────┬─────┬─────┬─────┐
│  ~  │  !  │  @  │  #  │  $  │
│  `  │  1  │  2  │  3  │  4  │
└─────┴─────┴─────┴─────┴─────┘

模板字符串

要把多个字符串连接起来,可以用+号连接:

let name = '小明';
let age = 20;
let message = '你好, ' + name + ', 你今年' + age + '岁了!';
alert(message);//显示:你好, 小明, 你今年20岁了!

(ES6新增)或者一种模板字符串,它会自动替换字符串中的变量:

let name = '小明';
let age = 20;
let message = `你好, ${name}, 你今年${age}岁了!`;
alert(message);

操作字符串

要获取字符串某个指定位置的字符,使用下标操作,索引号从0开始;字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果

let s = 'Hello, world!';s[0]; // 'H'
s[6]; // ' '
s[7]; // 'w'
s[12]; // '!'
s[13]; // undefined 超出范围的索引不会报错,但一律返回undefinedlet s = 'Test';
s[0] = 'X';
console.log(s); // s仍然为'Test'

改变字符串有一些常用方法,单调用这些方法本身——不会改变原有字符串的内容,而是返回一个新字符串:

//1.toUpperCase():字符串全部变为大写
let s = 'Hello';
s.toUpperCase(); // 返回'HELLO'//2.toLowerCase():字符串全部变为小写
let s = 'Hello';
let lower = s.toLowerCase(); // 返回'hello'并赋值给变量lower
lower; // 'hello'//3.indexOf():搜索指定字符串出现的位置
let s = 'hello, world';
s.indexOf('world'); // 返回7
s.indexOf('World'); // 没有找到指定的子串,返回-1//4.substring():返回指定索引区间的子串
let s = 'hello, world'
s.substring(0, 5); // 从索引0开始到5(不包括5),返回'hello'
s.substring(7); // 从索引7开始到结束,返回'world'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/968636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qwt相关知识点-鼠标缩放-坐标显示

要实现鼠标显示坐标的类:QwtPlotZoomer。原理:QwtPlotZoomer继承QwtPlotPicker,而QwtPlotPicker自带一个Label显示在canvas上 要实现自定义悬浮坐标:QwtPlotPicker。原理:重写QwtPlotPicker的trackerTextF()这个虚…

2025年不锈钢精密铸造厂家联系电话推荐:专业服务与联系方式

在制造业持续升级的背景下,不锈钢精密铸造作为关键工艺,广泛应用于航空航天、医疗器械、汽车零部件等高精尖领域。随着2025年市场对高质量铸件需求不断增长,寻找可靠的不锈钢精密铸造厂家成为许多企业的迫切需求。为…

2025年板链提升机源头厂家权威推荐榜单:柔性螺旋提升机/ 自动上料系统/垂直提升机源头厂家精选

板链提升机市场年增长率稳定在12%以上,在食品、医药、新能源等行业自动化改造中发挥着关键作用。 板链提升机作为现代工业物料输送系统的核心装备,其性能直接关系到整条生产线的运行效率。行业数据显示,2025年中国板…

2025年热门的岩板餐桌行业内知名厂家排行榜

2025年热门的岩板餐桌行业内知名厂家排行榜岩板餐桌行业背景与市场趋势近年来,随着消费者对家居品质和美观度要求的不断提升,岩板餐桌凭借其优异的性能和时尚的外观,迅速成为家居市场的热门选择。岩板作为一种新型人…

uChrome Chrome(ungoogled-chromium) 便携版本

uChromeChrome(ungoogled-chromium) 便携版本,下载简介ungoogled-chromium 是基于 Chromium 的衍生版本,其剥离了所有来自 Google 的网络服务组件,进一步屏蔽 Google 内置于浏览器中的各种数据收集行为。特性关闭浏…

2025年靠谱的圆形电梯厂家推荐及选择参考

2025年靠谱的圆形电梯厂家推荐及选择参考行业背景与市场趋势随着城市化进程的加快和建筑设计的多元化发展,圆形电梯作为一种兼具功能性与美观性的垂直交通解决方案,正逐渐成为高端商业综合体、星级酒店和地标性建筑的…

2025年临时安保公司权威推荐榜单:活动安检/公司安保/贵重物品护送源头厂家精选

随着各类大型活动和商业需求的持续增长,临时安保服务市场年增长率稳定在15%以上,专业化的安保服务已成为活动顺利开展的重要保障。 临时安保服务作为大型活动、商务护卫等短期安全需求的重要解决方案,近年来呈现出专…

第12周 预习、实验与作业:Java并发编程

第12周 预习、实验与作业:Java并发编程第12周 预习、实验与作业:Java并发编程 目录第12周 预习、实验与作业:Java并发编程1. 预习1.1 学习目标1.2 预习任务1.3 课前问题列表2.实验3.课后任务(作业)3.1 PTA编程3.2…

好用的跨网文件安全交换系统推荐是什么?主要有哪些核心功能?

Ftrans Ferry跨网文件安全交换系统专为高效、安全的数据传输设计,凭借其完备的功能,成为现代企业优选的文件交换工具。该系统实现了全面的数据保护,如DLP技术及时发现敏感数据风险,确保信息不被泄露。此外,通过稳…

2025年靠谱的圆形电梯家用TOP实力厂家推荐榜

2025年靠谱的圆形电梯家用TOP实力厂家推荐榜行业背景与市场趋势随着中国城镇化进程的加快和居民生活水平的提升,家用电梯市场近年来呈现爆发式增长。据中国电梯行业协会最新数据显示,2024年中国家用电梯市场规模已达…

2025年皮带传送带输送机定做厂家权威推荐榜单:带式输送机设备/大倾角皮带输送机/输送机皮带输送机源头厂家精选

中国工业输送设备市场规模已突破600亿元,其中皮带传送带输送机作为核心物料搬运设备,年需求量增长率稳定在10%以上。 皮带传送带输送机凭借其输送距离长、运量大、连续输送等优势,已成为现代工业生产中不可或缺的关…

2025 年 11 月五金件厂家推荐排行榜,不锈钢五金件,家具五金件,精密五金件,汽车五金件,橱柜五金件公司推荐

2025年11月五金件厂家推荐排行榜:不锈钢、家具、精密、汽车、橱柜五金件企业深度解析行业背景与发展趋势五金件作为现代制造业的基础元件,其质量直接影响终端产品的性能与寿命。随着产业升级的深入推进,五金件行业正…

DevExpress WPF中文教程:Data Grid - Service(服务)示例

DevExpress WPF中文教程:Data Grid - Service(服务)示例DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序…

2025年眼部雾化SPA商家口碑推荐排行榜前十强

摘要 随着现代人用眼强度不断增加,眼部雾化SPA行业在2025年迎来了快速发展期。据统计,我国眼部健康服务市场规模已突破百亿元,年均增长率达23.5%。本文基于用户真实评价、服务质量、技术水平和行业口碑等多维度数据…

2025年眼部雾化SPA商家全方位推荐排行榜:口碑与专业度权威评测

摘要 随着现代人用眼强度不断增加,眼部健康问题日益突出,眼部雾化SPA行业在2025年迎来快速发展期。据统计,中国眼部护理市场规模已突破800亿元,年增长率保持在15%以上。本文基于用户体验数据、技术实力、服务品质等…

通信原理 位同步 码元同步 方法

通信原理 位同步 码元同步 方法1、

iptables基础防火墙配置

# 清空现有规则 iptables -F # 设置默认策略:进来的包都拒绝,出去的都允许 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # 本机访问本机全部允许 iptables -A INPUT -i lo -j AC…

win10系统如何去除此电脑首页的六个文件夹?删除此电脑的文件夹

转自:https://zhuanlan.zhihu.com/p/31126258 删除后效果 首先打开注册表(win+R打开运行对话框输入regedit回车或者通过小娜搜索regedit)启动注册表编辑器, 然后定位到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi…

STM32F4由于RST引脚外接上拉电阻导致NVIC_SystemReset()函数软件复位失效

STM32F4由于RST引脚外接上拉电阻导致NVIC_SystemReset()函数软件复位失效

2025年比较好的系统阳光房厂家最新权威榜

2025年比较好的系统阳光房厂家最新权威实力榜行业背景与市场趋势随着人们生活品质的提升和对居住环境要求的不断提高,系统阳光房作为连接室内外空间的理想选择,近年来市场需求持续增长。据中国建筑金属结构协会最新数…