数组& 函数&作用域&预解析&对象内置对象
一. 流程控制:大致与java相同;
二. 数组
数组两种创建方式:new关键字创建,字面量var a = [];
数组中的数据不限制为同一数据类型
数组新加元素:1修改长度 2修改索引号
三 . 函数
定义:function 函数名(){} 其参数比较随意,形参和实参
return只能返回一个值,若多个值则返回最后一个,若需返回多个则可利用数组;
函数如果没有retrun则返回undifined
arguments:
(伪数组)函数内置元素,用来接收不定长实参
拥有数组length特性;按照索引的方式存储;没有数组的一些方法 pop()等;
函数两种命名方式:
四 . 作用域:为了减少变量命名冲突,提高程序的可靠性
var定义变量的全局作用域,函数内为局部作用域
在函数内部没有声明,直接赋值的也是全局变量,全局变量浏览器关闭的是后释放,局部变量在函数调用完就可释放,可以 减少内存占用。
作用域链:就近原则
五 . 预解析
js引擎运行需要两步:预解析 代码执行
预解析:js引擎会把js里面所有的var和function提升到当前作用域的最前面。
变量预解析:变量提升只会提升到当前作用域最前面,不会提升赋值。
函数预解析:函数声明提升到最前面,不会调用函数。
在函数内部定义:var a=b=c=9; var a=9;b=9,c=9;b,c为全局变量
六 . 对象
1. 创建函数
1》利用字面量创建
里面的属性名和属性值采用键值对的方法,键:属性名 值:属性值
多个属性或者方法用逗号隔开,:后面更一个匿名函数
调用属性有一种与java不同的方法,对象名['属性名']
2》利用new Object()
利用属性赋值的方法赋值
3》利用构造函数创建对象(对象实例化)
构造函数:泛指一大类,对象:具体一个事物
1,构造函数名字首字母必须大写
2,构造函数不需要retrun,就可以返回结果
3,调用构造函数必须用new
4》new关键字
执行过程:1.在内存中创建一个空的对象 2 this指向这个对
3 执行构造函数里面的代码给这个对象添加属性和方法 4 返回这个对象
5》遍历对象
for... in 用于数组和对象的属性和方法的遍历
for(变量 in 对象)
六 . 内置对象:JS的内置的一些对象
查文档:MDN