变量的作用域
- 全局变量:在全局作用域下声明的变量就是全局变量,这种变量在任何地方都能被访问到.
- 局部变量:在函数体内部声明的变量,这种变量只能在该函数体内部使用,在函数体外无法被访问或操作。
在JS中没有块级作用域的概念,只有函数作用域的概念,只有函数才是一个封闭的作用域,在函数体内部声明的变量在函数体外部是无法访问的 - 局部变量和全局变量冲突:以局部变量和全局变量冲突:以局部变量为准.
- 如果想在函数体内部声明一个全局变量,那么只要去掉声明变量的var关键字即可.
- 在布局作用域发生嵌套的时候,内层函数是可以访问到外层函数的局部变量的,反之则不行.
- 变量提升:JS解释器的一种机制,当我们执行某一个函数的时候,js解释器会从上到下把函数中的局部变量提取出来放到函数体的顶端声明但不赋值,此时该变量里面存储的值就为undefined.
- 参数对象:参数对象的使用场景只是在调用函数时传入实参的数量不确定的情况下,那么我们就会把形参去掉参数对象arguments来代替.参数对象的本质是一个类数组,拥有数组下标的特性和length特性.
- 数组:若干个值得有序集合.拥有下标的特性,可以使用数组[数字]的形式从一个数组集合中提取出来某一个元素;拥有length特性,可以使用数组.length返回数组中成员的数量(数组的长度)
var 数组;
for(var i=0;i< 数组.length;i++)
{
数组[i];
}
数组的全局方法:Array.方法()
- push(exp) 向后插
- pop() 删除最后一个
- unshift(exp) 向前插
- shift() 删除第一个
- splice(index,howmany,repalcement) 添加/删除/替换
- splice(要插入位置的下标,0,要插入的元素) 往数组中某一个位置塞一个元素进去
- splice(要删除元素的下标,1) 从数组中删除掉某一个元素
- concat(array) 数组拼接
- join() 将数组转换为字符串,参数作为分隔符。
- reverse() 颠倒数组中元素的顺序
- slice(start,end) 从数组中截取一部分,end作为结束下标在结果集中并不包含该元素。
arr.sort(function(num1,num2){
return num1-num2;
})