js初级知识有很多,如js的引用、数据类型(分为简单数据类型和引用数据类型)、运算符、流程控制、循环结构、数组、函数、变量、对象等,在这里我就先介绍我认为比较重点的几个吧。
目录
1.数组
数组是用来存储多个数据的容器,在内存中占据连续不断的一组位置,可以放任意类型的数据。
(1)数组创建方式
数组有两种创建方式
1、字面量创建
var 数组名 = []
2.原型创建
var 数组名 = new Array()
(2) 数组的增删查改
这里先来介绍一下索引 index,也叫下标,是数据在数组中的位置,从0开始。
使用:数组名[index]
数组的增加和修改
数组增加:数组名[索引] = 值, 索引是要在已有的下标后面再添加索引,如果在已有的下表上添加,那不叫添加,叫修改了。
数组修改:数组名[索引] = 值,索引是在已有的下标上修改
数组查找:数组名[索引]
数组删除:delete 数组名[索引] ,这个删除知识删除数据,但是不改变长度,只是删除的内容变为empty。
有时候是不是会觉得比较麻烦啊,比如如果我要在数组末尾添加一个数据,但是我又不知道那个数组有多少个下标,这时候是不是还得查看数组的下标才能继续添加啊,所以我们通常都会使用数组方法来实现数组的增删查改。
(3)数组API(数组方法)
数组方法又会分为两种,一种是使用方法后会改变原数组,一种是不改变原数组的,现在我们就来看看哪些方法改变原数组,哪些方法不改变原数组吧。
改变原数组的数据API
1.push() :在数组末尾添加一个或多个数据,返回数组长度
2.pop() : 在数组末尾删除一个数据,返回被删除的数据
3.unshift() :在数组开头添加一个或多个数据,返回数组长度
4.shift() :在数组开头删除一个数据,返回被删除的数据
5.splice(index,num,a...)
- 指定位置删除 :从index位置开始删除num个,返回被删除的数据组成的新数组
- 指定位置替换 :从index位置开始删除num个,在index位置插入a+个数据,返回新数组
6.sort() :排序,默认是升序,返回值为排序后的数组
7.reverse() :数组翻转,返回值为被翻转后的数组
不改变原数组的数据API
1.concat() :合并数组,返回被合并的数组
2.join() :将数组转换成字符串并用字符分隔,返回转换后的数组
3.toString() :将数组转换成字符串并用逗号分隔,返回转换后的字符串
4.slice(start,end) :数组截取,从start到end位置,不包含end,返回截取的数组组成的数据,如果参数为负数,就反方向数,负数从-1开始
5.indexOf() :查询数组中的元素,并返回它所在的位置,查不到返回-1
2.字符串
(1)字符串创建方式
字符串也有两种创建方式
1、字面量创建
var 字符串名 = “”
2.原型创建
var 字符串名 = new String()
需要注意:
字符串单引号和双引号可以配合使用,但是不能单引号包含单引号,双引号包含双引号。
任何被引号包含的文本被称为字符串型数据
(2)字符串常用API
1.根据字符返回位置
- indexOf() :返回某个指定的子字符串在字符中第一次出现的位置,不改变原字符串
- lastIndexOf() :返回某个指定的子字符串在字符中最后出现的位置,不改变原字符串
2.根据位置返回字符
- 字符串名[索引]:返回指定下标位置的字符,不改变原字符串
- charAt():返回指定下标位置的字符,如果下标不在字符串之间,返回空字符串,不改变原字符串
3.字符串大小写转换
- toLowerCase():把字符串转为小写,返回新的字符串,不改变原字符串
- toUpperCase():把字符串转为大写,返回新的字符串,不改变原字符串
4.提取子字符串,不改变原字符串
- slice(start,end) :返回字符串中提取的子字符串,不包含end
- subString(start,end) :提取字符串中介于两个指定下标之间的字符,不包含end,不接受负值
- subStr() :返回指定下标开始指定长度的子字符串,如果没有指定长度,返回从下标开始处到结尾处的所有字符串
5.split() :把字符串切分为字符串数组,返回的是一个新数组
6.replace() :在字符串中用一些字符替换另一些字符
7.concat() :拼接字符串
3.函数
函数就是封装了一段可被重复调用执行的代码块,可以实现大量代码的重复使用。思想:高内聚,低耦合。
(1)声明函数
function 函数名(){
//函数体代码
}
function是声明函数的关键字,必须小写,通常将函数名命名为动词,如getSum();
函数名起名:函数名和变量名如果由多个单词拼接,必须符合小驼峰原则(第一个首字母小写,其余大写)。
(2)调用函数
记住一个口号:函数不调用,自己不执行。
函数本身不会执行代码,只有调用后才能执行函数体代码。
(3)函数的参数
形参:函数定义时设置接收调用时传入
实参:函数调用时传入小括号内的真实数据
运用:调用时实参是传给形参的;形参:不用声明的变量;实参和形参的多个参数用逗号隔开。
(4)arguments的使用
当不确定有多少个参数传递的时候,可以用arguments来获取。
arguments:搜集不确定个数的实参,将搜集的实参放在一个类数组中。
类数组:不可以使用数组的方法,因为本质是对象,但可以使用下标来获取数据。
4.对象
(1)对象的创建
1.字面量创建
2.原型创建
3.构造函数创建
构造函数是一种特殊的函数,主要用来初始化对象,与new一起使用。
构造函数抽象了对象的公共部分,封装到了函数里面,泛指某一类。
new关键字的作用
1.new在构造函数体力的内存中创建一个空的对象,
2.将this指向刚创建好的空对象
3.执行构造函数中的代码,给空对象提供属性和方法
4.返回这个空对象。
(2)内置对象
js对象分为3类:自定义对象、内置对象、浏览器对象。
内置对象有:Math,Date,Array,String。Array和String我们在数组和字符串中已经见到了,现在就来学习Math和Date的作用。
1.Math对象
Math.PI | 圆周率 |
Math.random() | 随机数,0-1之间 |
Math.floor() | 向下取整 |
Math.ceil() | 像上取整 |
Math.round() | 四舍五入 |
Math.abs() | 绝对值 |
Math.max/Math.min | 最大值/最小值 |
2.Date对象
getFullYear() | 获取年 |
getMonth() | 获取月(0-11),返回的月份会小一个月,通常会(getMonth)+1 |
getDate() | 获取天 |
getDay() | 获取星期(0-6),0:星期天 |
getHours() | 获取小时 |
getMinutes | 获取分钟 |
getSeconds() | 获取秒 |