![c580c63f8eb1fff598720973e7c3e9f7.png](https://img-blog.csdnimg.cn/img_convert/c580c63f8eb1fff598720973e7c3e9f7.png)
JavaScript基础入门
一、上篇知识复习
1.1 作用域
JS没有块级作用域,只有函数能关住作用域。
在作用域里面定义的变量叫做局部变量。在函数外面是不能被访问到的。
定义在全局就是我们的全局变量。在任何地方都能被访问。
变量没有定义直接赋值,计算机会自动在全局。一定要写var关键字。
函数的形式参数也是函数内部的局部变量,在外面不能被访问。
作用域链:如果一个函数内部调用一个变量,从本层函数开始一层一层往外找,直到找到一个匹配的变量,就直接使用,一直找不到,报错,变量未定义。
遮蔽现象:如果有同名的变量分布在不同的层面,我们使用距离本层最近的。
函数也有作用域,它定义在哪儿,就在哪个作用域里使用。出了这个作用域,函数不能被访问到。
1.2 闭包
每一个函数都是一个闭包。它天生定义的时候就能记住内部的语句,还有当时所处的作用域,封闭成了一个密闭的环境。每次重新使用这个函数的时候,都能找到原来的作用域。
想观察闭包的现象,用一种特殊的方法。将内层的函数作为外层函数的返回值。将外层函数执行后赋值给一个新的变量,用这个变量调用内层函数,我们就能够观察闭包。
function
每一个新的闭包,都会访问它定义时的那个作用域。
1.3 数组
数组是一个有序的数据集合。存了一组数据。
数据可以是任意类型,我们习惯一个数组存放同一类型的数据。
数组用它的数组字面量的方法定义。
var
我们可以通过下标(索引值)来访问数组里面的某一项,下标从0开始的。
也可以通过下标来进行修改值。
arr[1]; //访问的是第二项,索引值是1
arr[1] = 23; //更改值
数组是object类型,是一个对象。有属性和方法。
数组有一个长度属性。使用数组名.length,得到数组里面数据的长度。数据的个数。
我们数组最大的索引值是数组的长度减1.
最大的索引值 = arr.length - 1
我们可以对数组进行遍历,可以对每一个数组的数据进行一些操作。
for
方法:
首尾操作:
push() 在数组的尾部加入一个或多个元素,返回数组新的长度。
pop() 删除数组的最后一项元素,返回这个删除的元素。
unshift() 在数组的首位添加一个或多个元素,返回的是新的长度。
shift() 删除数组首位的元素,返回这个删除的元素。
var
合并和拆分
concat() 将两个数组合并并且返回一个新的数组。原来的两个数组不变。
slice() 截取数组的一部分,返回一个新的数组。参数都是索引值。
Var
如果只有一个参数,是开始位置,从这个位置开始截取到数组的结尾。
参数可以是负值。
Var
删除、添加、替换:
splice() 找到指定位置的元素删除,替换成新的元素。
参数只有两个:删除,第一个参数是起始位置的索引值,第二个参数是删除的长度。
添加:第二个参数值是0,后面的参数要有其他的新元素。
替换:把指定的删除,在原位置添加新的元素。
倒序和排序:
倒序:reverse() 将数组里面的数据的顺序完全颠倒。
排序:sort() 会按照某种顺序来给我们排序。
默认的情况:用字符编码顺序,来排序。
有对比函数参数:
var
数组转字符串:
join() 有一个参数,如果传递就用它做连字符,如果没有默认用逗号链接。
字符串的属性和方法
2.1 属性
Length 返回字符串的长度
var
![ecd12c28ee0e13d113d704e61bb32480.png](https://img-blog.csdnimg.cn/img_convert/ecd12c28ee0e13d113d704e61bb32480.png)
字符串的长度包括:汉字、英文字母、空格、和特殊符号,每一个都占了一个长度。
2.2 方法
charAt() 返回在指定位置的字符。
Character 字符的意思
这个参数就是字符串的下标。索引值也是从0开始。
console
Concat() 连接字符串。
可以连接两个或多个字符串,并且返回一个新的字符串,原来的字符串不受影响。
var
![63bc3bf348b7b63640bb83dfb6ddff0c.png](https://img-blog.csdnimg.cn/img_convert/63bc3bf348b7b63640bb83dfb6ddff0c.png)
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
从字符串前面开始找,找到第一个符合的字符串,输出它的索引值。
console
![01422e48687f884dbfd79358749c2cc1.png](https://img-blog.csdnimg.cn/img_convert/01422e48687f884dbfd79358749c2cc1.png)
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
注意:输出的是最后一个出现的位置的索引值,不是从后面数第几个。
console
![5b53e65a7d254d4dacc9285f8b6de56c.png](https://img-blog.csdnimg.cn/img_convert/5b53e65a7d254d4dacc9285f8b6de56c.png)
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
Start:截取开始的位置,包括。
End:结束的索引值位置,不包括这个位置。
var
![2bbd0ad9c254eaee8426449e4e4f11c2.png](https://img-blog.csdnimg.cn/img_convert/2bbd0ad9c254eaee8426449e4e4f11c2.png)
也可以只传一个参数:截取到最后。
可以传递负的参数。
split() 方法用于把一个字符串分割成字符串数组。
参数:就是我们的分隔符。
var
![318591133f7b780fe893197aab59034c.png](https://img-blog.csdnimg.cn/img_convert/318591133f7b780fe893197aab59034c.png)
substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
截取从指定位置开始的指定长度的字符串片段。
var
![c774cbcac24aa00a469621b3a26634cd.png](https://img-blog.csdnimg.cn/img_convert/c774cbcac24aa00a469621b3a26634cd.png)
也可以只输入一个参数:从起始位置截取到最后。它可以等价于slice方法只传一个数值。
var
![98f3913d2ea2e19162ae6323fa2f11b5.png](https://img-blog.csdnimg.cn/img_convert/98f3913d2ea2e19162ae6323fa2f11b5.png)
第一个参数可以传负值。
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
var
![0e50f994bbae729bf97d5f057985c3c5.png](https://img-blog.csdnimg.cn/img_convert/0e50f994bbae729bf97d5f057985c3c5.png)
从起始位置开始截取到结束位置,不包括结束位置。
substring与slice和substr不同:可以颠倒参数的顺序。
var
![ad922afb75c7dd23c9072fa84dcb2279.png](https://img-blog.csdnimg.cn/img_convert/ad922afb75c7dd23c9072fa84dcb2279.png)
不同点:substring不能传负值。
substr能传负值
转换大小写:
toLowerCase() 方法用于把字符串转换为小写。
toUpperCase() 方法用于把字符串转换为大写。
var
练习:把字符串“i love math very much”每个单词的首字母大写。
//首字母大写
如上
链接等我基本做完就全部放上来...
此文章是原创,若是转载,请联系本人并表明出处,感谢阅读.