JS基础笔记 | 青训营笔记

57 阅读2分钟

JavaScript 基础笔记

一. JavaScript 简介

JavaScript是一门弱类型的编程语言,它被广泛用于 web 开发中,主要用来实现用户交互、动态数据渲染等功能。同时,它也可以运行在 Node.js 上,用于实现服务器端的应用程序。

JavaScript 是一门基于原型(prototype)的语言,支持面向对象、过程式和函数式编程风格。它允许通过函数作为一等公民,支持闭包和匿名函数等特性,从而创建出简洁高效的代码结构。

二. JavaScript 的数据类型

JavaScript 中有 7 种内置数据类型,分别为:

  • 基本类型:Number、Boolean、String、Null、Undefined、Symbol。
  • 引用类型:Object。

其中,Symbol 是 ES6 新增的数据类型,用于表示独一无二的值。除了 Object 和 Symbol,其他的数据类型都有对应的字面量表示法,如:

// 数值字面量
let num = 123;

// 字符串字面量
let str = 'hello world';

// 布尔字面量
let bool = true;

// null 字面量
let nullObj = null;

// undefined 字面量
let undefinedObj = undefined;

三. 变量提升

在 JavaScript 中,使用 var 关键字声明的变量存在变量提升的现象。变量提升指的是,在函数执行前,JavaScript 引擎会先扫描该函数中所有使用 var 关键字声明的变量,并将其声明提升到函数顶部,这就意味着我们可以在变量声明之前进行访问和赋值操作。

例如下面的示例代码:

function myFunc() {
  console.log(a); // 输出 undefined
  var a = 'hello';
  console.log(a); // 输出 hello
}
myFunc();

在上面的代码中,我们在变量 a 的声明之前直接使用了 a 进行输出操作,此时由于变量提升的存在,a 已经被声明,但是其值为 undefined。而在变量 a 等号右侧进行了赋值,所以第二次输出结果为 'hello'。

需要注意的是,如果我们使用 let 或 const 关键字来声明变量,那么就不存在变量提升的现象,同时也避免了很多可能出现的问题。