数组和函数

361 阅读2分钟

数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示

创建数组:

  1. var arr=["a","b","c"] 定义时赋值

  2. var arr=[]; arr[0]="a"; arr[1]="b"; arr[2]="c";

  3. var arr=new Array(20); arr.length=20; 长度不够后面都会删除 取最后一个用:arr[arr.length-1]

  4. 数组的读取方式是[index]来读取。

函数 函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。

函数声明的方式:

  1. function sum(a,b){ 代码块 } sum(); 存在函数声明的提升

  2. var sum=function(){ 代码块 } sum(); 函数表达式的声明不存在函数的提升

  3. var sum=new Function(){

} sum();很少人使用

  1. 如果同一个函数被多次声明,后面的声明就会覆盖前面的声明。
  2. 函数体内部的return语句,表示返回。JavaScript 引擎遇到return语句,就直接返回return后面的那个表达式的值,后面即使还有语句,也不会得到执行。
  3. JavaScript 语言将函数看作一种值,与其它值(数值、字符串、布尔值等等)地位相同。凡是可以使用值的地方,就能使用函数。比如,可以把函数赋值给变量和对象的属性,也可以当作参数传入其他函数,或者作为函数的结果返回。函数只是一个可以执行的值,此外并无特殊之处。
  4. 函数的name属性返回函数的名字。

function f1() {} f1.name // "f1"

  1. 函数的length属性返回函数预期传入的参数个数,即函数定义之中的参数个数。

function f(a, b) {} f.length // 2

  1. 函数的toString方法返回一个字符串,内容是函数的源码。

function f() { a(); b(); c(); }

f.toString() // function f() { // a(); // b(); // c(); // }

  1. var v = 1;

function f(){ var v = 2; console.log(v); }

f() // 2 v // 1 函数提升,函数内部作用域先执行,再是外部。先找内部,再找外部

  1. 函数提升比变量提升优先级高。 如果有同名的参数,则取最后出现的那个值。"()">".">"=">"++"
  2. JavaScript 有两种作用域:全局作用域和函数作用域。函数内部可以直接读取全局变量。但是,函数外部无法读取函数内部声明的变量。