函数:
函数在调用的时候,会形成一个私有作用域,内部的变量不会被外面访问,这种保护机制叫闭包。这就意味着函数调研完毕,这个函数形成的栈内存会被销毁。但有的时候我们不希望他被销毁。
函数归属谁跟它在哪调用没关系,跟在哪定义有关。
fn()调用完毕后得到的是一个匿名函数,但是这个fn这个作用域下定义的,所以这个匿名函数内部的变量在放fn作用域下查找。这种写法可以使函数内部的变量不被销毁。
基类Object的子类:
Function(函数) Array(数组) Number(数字) Boolean(布尔) String(字符串) Date(日期)Math(数字)RegExp(正则)都是类。本质都是函数。
string 字符串:
定义:var str=new String("hello world")
简写:var str="hello world"
字符串的加号运算+ 仅仅是拼接 这种方法叫字符串拼接。
每个函数都天然自带一个return。如果写return返回什么就是什么,如果不写就是undefined
类本质也是函数,里面也有return但默认是object,如果强制return一个值,不会造成什么影响,如果return是个对象就会造成影响。
字符串prototype上的方法:
1.charAt() 返回指定位置的字符
2.Concat() 连接两个或多个字符,并返回新的字符串
3.indexOf() 返回某个字符串在字符串
4.lastindexOf() 从后向前检索某个字符串在字符串中出现的位置,返回值是从起始位置算起
5.match()
6.Search()
7.Replace()
8.Slice() 截取字符串中的一部分
9.Split() 将字符串按某种形式分割成数组
10.substr() 也是截取 和slice有点区别
11.toLowerCase() 将字符串的中字符都变成小写
12.toUpperCase() 将字符串中的字符都变成大写
13.trim() 去掉字符串两端的空白
Array 数组:
1.定义:var arr=new Array(12,"zhang")
简写:var arr=[12,"zhang"]
2.方法:
1.Push() 在数组的结尾处添加一个新元素。返回值是数组长度
2.unshift() 在开始处填加一个新元素。返回值是数组长度
3.pop() 删除数组中的最后一个元素。返回的是删除的那个元素
4.shift() 删除数组中的第一个元素。返回的是删除的那个元素
5.slice() 截取数组中的一部分,并返回新的数组。对原来的数组没有影响
6.splice() 在数组中添加或删除元素。
7.sort() 给数组中的元素排序
8.reverse() 反转数组中元素的顺序
9.toString() 将数组转换成字符串格式的数组,并返回结果
10.concat() 合并多个数组,并返回新的值
11.indexOf() 检索数组中的元素,并返回他所在的位置,没有就是-1