找回密码
 立即注册
首页 资源区 代码 JavaScript 基础笔记碎片-数据类型、变量与字符串操作 ...

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

撒阗奕 2025-11-19 11:35:00
注意:本篇学习笔记摘录于原网站: JavaScript教程 - 廖雪峰的官方网站
笔记仅作学习留档使用
本篇目录

比较运算符
BigInt
变量
strict模式
字符串
多行字符串
模板字符串
操作字符串
比较运算符

JavaScript允许对任意数据类型做比较:
  1. false == 0; // true
  2. false === 0; // false
复制代码
比较方式对比:

  • ==:自动转换数据类型后再比较(容易产生意外结果)
  • ===:严格比较,数据类型不一致直接返回 false
建议始终使用 === 进行比较。
另一些特殊值的比较:
  1. //`NAN`这个特殊的Number与所有其他值都不相等,包括它自己:
  2. NaN === NaN;  // false
  3. isNaN(NaN);   // true - 正确判断方法
  4. //浮点数
  5. 1 / 3 === (1 - 2 / 3);  // false
  6. //计算它们之差的绝对值,看是否小于某个阈值
  7. 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放在一起运算::
  1. // 创建 BigInt
  2. const bi1 = 9223372036854775807n;
  3. const bi2 = BigInt(12345);
  4. const bi3 = BigInt("0x7fffffffffffffff");
  5. // 比较
  6. console.log(bi1 === bi3);  // true
  7. // 正常运算
  8. console.log(1234567n + 3456789n);  
  9. console.log(1234567n / 789n);      // 1564n(结果仍为 BigInt)
  10. // 类型混合错误
  11. console.log(1234567n + 3456789); // 会显示Uncaught TypeError: Cannot mix BigInt and other types
复制代码
变量

变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如if、while等。申明一个变量用var语句,比如:
  1. var a; // 申明了变量a,此时a的值为undefined
  2. var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1
  3. var s_007 = '007'; // s_007是一个字符串
  4. var Answer = true; // Answer是一个布尔值true
  5. var t = null; // t的值是null
  6. // let 声明(现代推荐)
  7. let name = '小明';
复制代码
变量名也可以用中文,但是,请不要给自己找麻烦。
在JavaScript中,使用等号=对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var申明一次,例如:
  1. var a = 123; // a的值是整数123
  2. a = 'ABC'; // a变为字符串
  3. // 变量输出
  4. console.log(x);  // 推荐:控制台输出
  5. alert(x);        // 不推荐:弹窗干扰
复制代码
strict模式

如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:
  1. i = 10; // 全局变量
复制代码
在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。
使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内(函数的概念将稍后讲解),同名变量在不同的函数体内互不冲突。在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。启用strict模式的方法是在JavaScript代码的第一行写上:
  1. 'use strict';
  2. //不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式运行JavaScript。
复制代码
字符串

是用''或""括起来的字符表示。如果'本身也是一个字符,那就可以用""括起来;如果字符串内部既包含'又包含"就用转义字符\来标识,比如:
  1. 'I\'m "OK"!'; // I'm "OK"!
复制代码
转义字符\可以转义很多字符:
  1. //`\n`表示换行
  2. //`\t`表示制表符
  3. `\\`; //字符`\`本身也要转义,所以`\\`表示的字符就是`\`。
  4. //ASCII字符以`\x##`形式的十六进制表示
  5. '\x41'; // 完全等同于 'A'
  6. //用`\u####`表示一个Unicode字符:
  7. '\u4e2d\u6587'; // 完全等同于 '中文'
复制代码
多行字符串

多行字符串用\n写起来比较费事,有一种多行字符串的表示方法(ES6标准新增),用反引号...表示:
  1. `这是一个
  2. 多行
  3. 字符串`;
复制代码
反引号在键盘的ESC下方,数字键1的左边:
  1. ┌─────┐ ┌─────┬─────┬─────┬─────┐
  2. │ ESC │ │ F1  │ F2  │ F3  │ F4  │
  3. └─────┘ └─────┴─────┴─────┴─────┘
  4. ┌─────┬─────┬─────┬─────┬─────┐
  5. │  ~  │  !  │  @  │  #  │  $  │
  6. │  `  │  1  │  2  │  3  │  4  │
  7. └─────┴─────┴─────┴─────┴─────┘
复制代码
模板字符串

要把多个字符串连接起来,可以用+号连接:
  1. let name = '小明';
  2. let age = 20;
  3. let message = '你好, ' + name + ', 你今年' + age + '岁了!';
  4. alert(message);//显示:你好, 小明, 你今年20岁了!
复制代码
(ES6新增)或者一种模板字符串,它会自动替换字符串中的变量:
  1. let name = '小明';
  2. let age = 20;
  3. let message = `你好, ${name}, 你今年${age}岁了!`;
  4. alert(message);
复制代码
操作字符串

要获取字符串某个指定位置的字符,使用下标操作,索引号从0开始;字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果
  1. let s = 'Hello, world!';
  2. s[0]; // 'H'
  3. s[6]; // ' '
  4. s[7]; // 'w'
  5. s[12]; // '!'
  6. s[13]; // undefined 超出范围的索引不会报错,但一律返回undefined
  7. let s = 'Test';
  8. s[0] = 'X';
  9. console.log(s); // s仍然为'Test'
复制代码
改变字符串有一些常用方法,单调用这些方法本身——不会改变原有字符串的内容,而是返回一个新字符串:
  1. //1.toUpperCase():字符串全部变为大写
  2. let s = 'Hello';
  3. s.toUpperCase(); // 返回'HELLO'
  4. //2.toLowerCase():字符串全部变为小写
  5. let s = 'Hello';
  6. let lower = s.toLowerCase(); // 返回'hello'并赋值给变量lower
  7. lower; // 'hello'
  8. //3.indexOf():搜索指定字符串出现的位置
  9. let s = 'hello, world';
  10. s.indexOf('world'); // 返回7
  11. s.indexOf('World'); // 没有找到指定的子串,返回-1
  12. //4.substring():返回指定索引区间的子串
  13. let s = 'hello, world'
  14. s.substring(0, 5); // 从索引0开始到5(不包括5),返回'hello'
  15. s.substring(7); // 从索引7开始到结束,返回'world'
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册