Web前端学习总结第四周
JavaScript
一、数组
1、数组的创建
(1)利用new创建
var arr = new Array();//创建新的空数组
(2)利用数组字面量创建
var arr = [];//创建新的空数组,数组中的元素用逗号隔开
Javascript中的数组可以存储任何数据类型的元素,和C语言还是有区别的。
2、数组的遍历
var arr = [];
for (var i = 0;i < arr.length;i++){
console.log(arr[i]);
}
3、增加数组元素
(1)修改数组长度
可以通过修改length长度来实现数组扩容的目的,length的属性是可读写的,如果扩充出来的空间为空,默认值为undefined。
(2)修改数组索引
直接修改数组索引的值来直接添加数组元素,例如:
var arr = [1, 2, 3];
arr[3] = 4;
arr[4] = 5;
这样可以直接添加数组元素。
4、修改数组的一些方法
(1)筛选数组中需要的元素
var arr = [包含多个数据];
var newArr = [];
for (var = i;i < arr.length;i++){
if(条件表达式){
newArr[arr.length] = arr[i];
}
}
(2)翻转数组
var arr = [包含多个数据];
var newArr = [];
for (var = arr.length - 1;i >= 0;i--){
newArr[arr.length] = arr[i];
}
(3)冒泡排序
var arr = [包含多个数据];
for (var = 0;i <arr.length - 1;i++){
for (var j=0;j < arr.length - i - 1;j++){
if(arr[j] < arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = arr[j];
}
}
}
二、函数
1、函数的声明
(1)命名函数
function 函数名(){
//函数体;
}
函数名();//调用方法
(2)匿名函数
var 变量名 = function(){
//函数体;
}
变量名();//调用方法
2、函数的参数
在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,而在调用该函数时,同时也需要传递相应的参数,这些参数被称为实参。和C中的语法基本一致。
| 参数 | 说明 |
|---|---|
| 形参 | 形式上的参数,函数定义的时候,传递的参数,当前并不知道是什么 |
| 实参 | 实际上的参数,函数调用的时候,传递的参数,实参是传递给形参的 |
形参和实参个数不匹配的问题
| 参数个数 | 说明 |
|---|---|
| 实参个数等于形参个数 | 输出正确结果 |
| 实参个数多于形参个数 | 只取到形参的个数 |
| 实参个数少于形参个数 | 多的形参定义为undefined,结果为NaN |
3、函数的返回值
function 函数名(){
return 需要返回的结果;
}
函数名();
函数只是实现某种功能,最终的结果需要返回给函数的调用者函数名(),通过return实现的。return需要注意的一些事项:
- return会终止函数
- return只会返回一个值
- 函数没有return就会返回undefined
4、arguments的使用
当不确定有多少个参数传递的时候,可以用arguments来获取,所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。
arguments展示形式是一个伪数组,因此可以遍历,而且具有一下特征:
- 具有length属性
- 按索引方式储存数据
- 不具有数组的push,pop等方法
三、作用域和预解析
1、作用域
- 全局作用域:整个script标签或者是一个单独的js文件。
- 局部作用域:在函数内部就是局部作用域 ,这个代码的名字只在函数内部起效果和作用。
- 全局变量:全局变量在代码的任何位置都可以使用,var声明的变量是全局变量。
- 局部变量:在函数里的变量。
全局变量和局部变量的区别就是全局变量只有在程序结束时才会被销户,比较占内存,局部变量在代码块结束后,就会被销毁,因此更节省空间。
- 作用域链:内部函数用作用域链查找外部函数数据能够被内部函数访问。遵循就近原则。
2、预解析
js引擎会把js里所有的var和function提升到当前作用域的最前面,不会提升赋值操作。
四、对象
对象是指具体的事物,是特指。对象是一组无序的相关属性和方法的集合。创建对象的方法有三种:
1、利用字面量创建对象
对象字面量就是花括号{}里面包含了表达具体事物的属性和方法。例如:
var obj = {
uname: '姓名',
age: 18,
sex: '男',
sayHi: function() {
console.log('hi');
}
}
调用对象的属性用 obj.属性 或者 obj[‘属性’],调用对象的方法用obj.方法名()。
2、利用new Object创建对象
var obj = new Object();
obj.uname = '姓名';
obj.age: 18;
obj.sex: '男';
obj.sayHi: function() {
console.log('hi');
}
3、利用构造函数创建对象
构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员赋初始值。他总与new运算符一起使用,构造函数类似于C语言中的结构体。例如:
function Star(uname,age,sex) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang) {
console.log(sang);
}
}
var ldh = new Star('刘德华',18,'男');
ldh.sing('冰雨');
3、new关键字的执行过程
- new 构造函数可以在内存中创建一个空对象
- this 就会指向刚才创建的空对象
- 执行构造函数里面的代码 给这个空对象添加属性和方法
- 返回这个对象
4、遍历对象
利用for in 遍历对象,方法如下:
for (var k in obj) {
console.log(k);//k变量输出的是属性名
console.log(obj[k]);//obj[k]得到的是属性值
}
本文是Web前端学习第四周的总结,重点讨论JavaScript的数组和函数。在数组部分,介绍了创建、遍历、增加元素及修改方法,包括冒泡排序。在函数部分,讲解了声明、参数、返回值和arguments对象的使用。此外,还涉及作用域、预解析以及对象的创建和遍历等概念。

被折叠的 条评论
为什么被折叠?



