【前端笔记12】javascript4 数组、函数、作用域

本文基于【黑马程序员JavaScript全套教程,Web前端必学的JS入门教程,零基础JavaScript入门】P96-139内容所做笔记。求数组长度length、函数变量存储对象argument、作用域链部分为重点内容。


一、数组

数组:一组数据存储在单个变量的集合

// 数组基本使用
	// 1.利用new 创建数组
	 let arr = new Array();		// 创建一个空数组
	// 2.利用数组字面量创建数组[]
	let arr = [];	// 创建一个空数组
	let arr1 = [1,'0',true];	// ,号隔开各数组元素

与C语言比:不用先告知长度,默认空数组长度arr.lenth == 0。

索引(下标):按照数组元素的顺序,从0开始,依次为:第0位,第1位…

获取数组元素格式:数组名[索引号]

利用循环遍历数组

利用计数器,将计数器当作索引号使用。

	let arr = ['red', 'green', 'blue'];
	for (let i = 0; i < 3 ; i++){
		console.log(arr[i]);
	}
求数组的长度:数组名.length

得到数组长度:数组名.length

	let arr = ['red', 'green', 'blue'];
	for (let i = 0; i < arr.length ; i++){	//arrlength = 3
		console.log(arr[i]);
	}
新增数组元素 push unshift
  1. 修改length长度
	let arr = ['red', 'green', 'blue'];
	arr.length = 5;
	// arr[3], arr[4] == undifined
  1. 追加:修改索引号
	let arr = ['red', 'green', 'blue'];
	arr[3] = 'pink';
	// arr = ['red', 'green', 'blue', 'pink'];
  1. push(参数):将一个或多个元素添加在数组 末尾,并返回该新数组(追加后)的长度
	// 语法 :arr.push(元素1,元素2,元素...)
	let ar = [1,2]
	ar.push(5)	// 返回3 ar = [1,2,5]
  1. unshift(参数):将一个或多个元素添加在数组 开头,并返回该新数组(追加后)的长度
	// 语法 :arr.push(元素1,元素2,元素...)
	let ar = [1,2,3]
	ar.unshift(5)	// 返回3 ar = [5,1,2]
删除数组元素 pop shift splice
  1. pop():删除 末位 元素
  2. shift():删除 开头 元素
  3. splice(起始,删除个数):删除指定元素

二、函数

函数使用

声明函数:

// 1.命名函数
function 函数名 (形参1, 形参2, ...) {
	// 函数体
	return 返回值:
}

// 2. 函数表达式(匿名函数)
let fun = function(){	// fun是变量名,不是函数名
	// 函数体
}

function:声明函数的关键字
注:函数名一般为动词

与C语言:形参不需要定义

调用函数: 变量名/函数名(实参1, 实参2, …);

return注意事项
  1. return 具有中止功能,其后的代码不会执行
  2. return 只能返回一个值,返回结果为最后一个值
  3. 函数没有return 返回undefined
argument的使用 *

使用场景:当不确定参数传递数量时,可用arguments来获取。
arguments:当前函数的 内置对象 ,所有函数都内置一个arguments对象,arguments对象中存储了传递 所有实参

arguments的展示方式以伪数组的形式
伪数组:

  1. 具有数组的 length 属性
  2. 按照索引进行存储
  3. 不具有数组的处理方法,如后续的pop()、push()等
	function fn(){
			console.log(arguments)	// 显示1,2,3
			console.log(arguments.length)	// 显示长度3
			console.log(arguments[2])	//显示元素3
	}
	fu(1, 2, 3);

立即执行函数

无需调用,立即执行函数,可防止变量污染
多个立即函数之间用分号隔开

语法:

  1. function(形参){函数体})(实参)
  2. function(形参){函数体}(实参))

三、作用域

作用域:变量作用的范围
分类:

  1. 全局作用域:整个script标签或一个单独的js文件
  2. 局部作用域:函数内部

说明:

  1. 函数的形参,属于局部变量
  2. 若在函数内部未声明的变量,属于全局变量(不推荐)
    例:
function fn(){
	var a = b = c = 10;
	// a为fn函数的局部变量
	// b\c为函数内部未声明的变量,为全局变量。
}

全局变量只有浏览器关闭时才会销毁,比较占用内存资源
js在es6的时候新增块级作用域,即花括号外不允许使用花括号内定义的变量

作用域链 :内部函数访问外部函数的变量,采用链式查找的方式取值的链式结构 (就近原则)



若对本文有任何建议或意见欢迎在评论区提出~十分感谢!
Ending

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值