前端JavaScript基础篇(一)

255 阅读4分钟

本篇文章仅为个人学习理解,通过工作、书籍等资料整理,如有错误欢迎指出。


javascript:是一种面向对象的,基于事件驱动的解释型、松散型的语言,无需编译(脚本语言)

javascript组成部分:

ECMAsciprt:是js核心,描述了基础语法、数据类型、关键字、保留字、操作符等。

DOM(Document Object Model文档对象模型):提供了操作HTML、XML的API。

BOM(Browser Object Model 浏览器对象模型):提供了与浏览器交互的API。

ECMAscript

一、变量

  • 变量是用来储存数据,是内存的一块地址单元。
  • 定义、声明变量 var a = 1; var b;
  • 变量命名规则:
  1. 只能以数字、字母、下划线、$组成,不能用数字开头。
  2. 不能用关键字和保留字命名。
  3. 声明变量名不能相同。
  4. 变量命名要有意义。
  5. 驼峰命名,首字母小写,之后的单词首字母大写 var tableList;

二、数据类型

ps:内存分栈区(存储空间较小)、堆区(存储空间较大)、静态区、代码段。
  • 基础数据类型(存储与内存栈区中)
number:保存数字的类型 (0x ->16进制输出会转换为10进制 0o为8进制 0b为2进制)
let num = 0x123 // 291
num = 0o123 // 83
num = 0b1110 // 14
// 都会将对应进制转换为10进制
string:用来保存字符串的类型
boolean:保存真、假的类型,布尔类型(truefalse)
undefined:只有一个值undefined,当访问未定义的内容js会默认返回为undefined。
null:只有一个值null。特殊的是它是一个对象。
symbol:本身是一个函数,常用作对象属性名表示这个属性的值是唯一。
  • 引用数据类型(存储于内存堆区中)
  • 数组:将一些有某些直接或简介联系的数据组合起来,这些数据称为数组。方便对于数据的操作与管理。数组中的数据可以是任意的数据类型。
// 创建数组:字面量 
let arr = []; 
// 以构造函数的方式:
let arr2 = new Array();
arr中存储的是数组在堆区中的地址arr本身存储与栈区中
数组中有下标的概念,从0开始计数,称之为索引。
可以通过访问下标的形式访问数组中的内容。
let arr = ['a','b','c',4];
arr[0]; // 访问arr数组中下标0的元素,为'a';
  1. 解构:
// 例:
let [a, b, c] = ['d', 'e', 'f'];
// 会一一对应赋值
console.log(a) // 输出: 'd' 
let [d, e, f] = 'hello'
// 也会一一对应赋值 d -> 'h'; e -> 'e' f -> 'l'
注意:当左边无默认值,右边无对应值时则为 undefined;右边的数值不是数组,字符串时解构无效,语法错误。
  1. ES6中的扩展运算符:将一个数组(字符串)转为用逗号分隔的参数序列。
let arr = [1,2,3,4];
// ['a', ...arr]  转为  ['a', 1, 2, 3, 4]
// [...'hello'] 转为 ['h','e','l','l','o']
  • 函数:是实现某一特定功能的代码块,封装起来,以便调用。

  • 创建函数:

  1. 字面量的形式:
let fun = function () {};
  1. function关键字的形式:
function fn () {}; 
// 运行函数
fn();

// 匿名函数
function () {};

// 匿名函数自运行
(function (){}) ()
  1. 构造函数的形式:
let fun = new Function() //函数体以字符串的形式传入
  • 参数-arguments
// a,b为形式参数,用来定义在函数运行时的实际参数
function fun (a,b){ console.log(a,b)}
// 函数运行时传入实际参数 
fun('实际参数a', ‘实际参数b’) //打印结果为 实际参数a 实际参数b

当实际参数传到形式参数时,会将全部数据先传到arguments中

function cc(a,b,c) {
  console.log(arguments)
};
cc(1,2,3)
Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]
0:1
1:2
2:3
callee:ƒ cc(a,b,c)
length:3
Symbol(Symbol.iterator):ƒ values()
__proto__:Object

当一个函数funA为另一个函数funB的参数时,我们称这个函数funA为回调函数。

函数必有返回值,通过return来定义返回值,若没有定义函数返回值,为undefined,函数中运行到retur n会停止执行,并返回。

一个函数中可以有多条返回语句,但只能有一个返回值。