JavaScript变量与基本数据类型

╰半橙微兮° 2024-03-23 10:21 138阅读 0赞

32603a12a18e4cbc839df112a3270f3c.gif

目录

一、声明变量

(1)let

(2)const

(3)var

二、基本类型

(1)undefined和null

(2)string

(3)number和bigin

(4)boolean

(5)symbol


JavaScript(JS)是一种具有函数优先特性的轻量级、解释型或者说即时编译型的编程语言。虽然作为 Web 页面中的脚本语言被人所熟知,但是它也被用到了很多非浏览器环境中,例如 Node.js、Apache CouchDB、Adobe Acrobat 等。进一步说,JavaScript 是一种基于原型、多范式、单线程的动态语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

一、声明变量

(1)let

  1. let 变量名 = 值;

let声明的变量可以被多次赋值,例如:

  1. let a = 100; // 初始值是 100
  2. a = 200; // ok, 被重新赋值为 200

(2)const

const修饰的叫常量,只能赋值一次

  1. const b = 300; // 初始值是 300
  2. b = 400; // error, 不能再次赋值

const并不意味着它引用的内容不可修改,例如:

  1. const c = [1,2,3];
  2. c[2] = 4; // ok, 数组内容被修改成 [1,2,4]
  3. c = [5,6]; // error, 不能再次赋值

(3)var

var声明的变量可以被多次赋值,例如:

  1. var f = 100;
  2. f = 200;

二、基本类型

(1)undefined和null

  • 执行表达式或函数,没有返回结果,出现 undefined
  • 访问数组不存在的元素,访问对象不存在的属性,出现 undefined
  • 定义变量,没有初始化,出现 undefined

例如:

  1. console.log(1); // 函数没有返回值, 结果是 undefined
  2. let a = 10; // 表达式没有返回值, 结果是 undefined
  3. let b = [1,2,3];
  4. console.log(b[10]); // 数组未定义元素是 undefined
  5. let c = {"name":"张三"};
  6. console.log(c.age); // 对象未定义属性是 undefined
  7. let d;
  8. console.log(d); // 变量未初始化是 undefined

二者共同点

  • 都没有属性、方法
  • 二者合称 Nullish

二者区别

  • undefined 由 js 产生
  • null 由程序员提供

(2)string

js字符串有三种写法:

  1. let a = "hello"; // 双引号
  2. let b = "world"; // 单引号
  3. let c = `hello`; // 反引号

HTML代码,用java和js中的表示对比:

java表示,比较繁琐:

  1. String s2 = """
  2. <a href="1.html">超链接</a>""";

js比较灵活:

  1. let s1 = '<a href="1.html">超链接</a>';
  2. let s2 = `<a href="1.html">超链接</a>`;

模板字符串(Template strings)

需求:拼接URL的请求参数,如:

/test?name=zhang&age=18
/test?name=li&age=20

传统方法拼接:

  1. let name = ; // zhang li ...
  2. let age = ; // 18 20 ...
  3. let uri = "/test?name=" + name + "&age=" + age;

模板字符串方式:

  1. let name = ; // zhang li ...
  2. let age = ; // 18 20 ...
  3. let uri = `/test?name=${name}&age=${age}`;

(3)number和bigin

number类型标识的是双精度浮点小数,例如:

  1. 10 / 3; // 结果 3.3333333333333335

既然是浮点小数,那么可以除零:

  1. 10 / 0; // 结果 Infinity 正无穷大
  2. -10 / 0; // 结果 -Infinity 负无穷大

浮点小数都有运算精度问题,例如:

  1. 2.0 - 1.1; // 结果 0.8999999999999999

字符串转数字

  1. parseInt("10"); // 结果是数字 10
  2. parseInt("10.5"); // 结果是数字 10, 去除了小数部分
  3. parseInt("10") / 3; // 结果仍视为 number 浮点数, 因此结果为 3.3333333333333335
  4. parseInt("abc"); // 转换失败,结果是特殊值 NaN (Not a Number)

要表示真正的整数,需要用bigint,数字的结尾用n表示它是一个bigint类型

  1. 10n / 3n; // 结果 3n, 按整数除法处理

(4)boolean

在js中,并不是boolean才能用于条件判断,可以在if语句中使用【数字】、【字符串】…作为判断

  1. let b = 1;
  2. if(b) { // true
  3. console.log("进入了");
  4. }

这时就有一个规则,当需要条件判断时,这个值被当做true还是false,当做true的值归类为truthy,当做false的值归类为falsy

下面的值是falsy:

  • false
  • Nullish (null, undefined)
  • 0, 0n, NaN
  • "" '' `` 即长度为零的字符串

剩余的值绝大部分都是truthy

有几个容易被当做falsy实际上是truthy的

  • "false", "0" 即字符串的 false 和 字符串的零
  • [] 空数组
  • {} 空对象

(5)symbol

使用较少,需要的可以在下面网址查阅JavaScript | MDN (mozilla.org)icon-default.png_t_N2N8https://developer.mozilla.org/zh-CN/docs/Web/JavaScript

发表评论

表情:
评论列表 (有 0 条评论,138人围观)

还没有评论,来说两句吧...

相关阅读