JS的基础知识

JS

一.数据的储存

  1. 原始类型:存储在占内存中,每次开辟的空间都是固定大小
  2. 引用类型:存储在堆内存中,所占的空间大小是根据内容动态变化;如果创建一个对象会存储在堆内存,会自动生成一个地址(指针),包含函数、对象、数组
  3. null:空地址,不指向任何引用类型的数据。
  4. 引用类型数据的销毁:不被任何的地址所指向即可销毁,只需要赋值为null。

二.数组

数组是一组数据的集合,每一个数据称为元素

1.创建数组

(1)数组字面量
var arr = [ 元素1, 元素2, 元素3,... ]
(2)内置构造函数
var arr1 = new Array(元素1, 元素2, 元素3,..)
var arr2 = new Array(3)  //初始化长度,后期需要手动添加每一个元素,可以添加更多个元素

2.访问数组元素

下标(索引):JS为每个元素自动添加的编号,是从0开始的一个整数

语法格式 数组名称[下标]

3.数组的长度

数组.length 获取数组元素个数

在数组的末尾添加元素 数组[ 数组.length ] = 值

4.数组分类

**索引数组:**以>=0的整数作为下标,可以通过length获取长度。

**关联数组:**以字符串作为下标,需要单独添加元素,不能使用length获取长度。
对比数组和对象的区别

两者都可以存储一组数据,对象是通过属性,数组是通过元素;

对象中这一组是无序的,不分先后顺序; 数组中这一组是有序的,可以进行排序。

5.遍历数组元素

通过循环依次访问数组中每个元素

// for-in
for(var k in 数组){
 //k  下标
 //数组[k]  下标对应元素
}
//for循环(推荐方式)
for(var i = 0;i < 数组.length;i++) {
 //i 下标
 //数组[i]   下标对应元素
}

案列

var arr = [82, 93, 74, 63]
for(var i = 0, sum = 0; i < arr.length; i++) {
    // console.log(i, arr[i])
    // 把每个成绩加到sum
    sum += arr[i]
}
console.log( sum, sum/arr.length )

6.数组API

API:JS中预定义的函数和方法

数组API就是数组中提供好的方法,可以直接调用

  1.  toString()     将数组转为字符串,按照逗号分割
    
  2.  join()    将数组转为字符串,默认按照逗号分割,可以指定分隔符
    
  3. concat(arr2,arr3...)      拼接多个数组,返回拼接后的结果
    
  4.  reverse()    翻转数组元素,返回翻转后的数组,原数组会发生变化
    
  5.  slice(start, [end])    截取数组元素,start开始的下标,end结束的下标,不包含end本身;end为空			  会截取到最后;如果下标为负数表示倒数;返回截取的数组
    
  6. splice(start, [count], [v1],…) 删除数组元素,start开始的下标,count删除的长度;count为空会删除到最后;下标为负数表示倒数;v1,…表示删除后要补充的元素;返回删除的元素,原数组会发生变化。
  7. sort()    对数组元素进行排序,默认是按照首个字母的Unicode码排列
    
  8. push() 在数组的末尾添加元素,返回数组的长度,原数组会发生变化
  9. pop() 删除数组末尾的一个元素,返回删除的元素,原数组会发生变化
  10. unshift() 在数组的开头添加元素,返回数组的长度,原数组会发生变化
  11. shift() 删除数组开头的一个元素,返回删除的元素,原数组会发生变化
  12. indexOf()    检测数组中是否含有某个元素,存在返回下标,不存在返回-1
    

其它API: https://www.w3school.com.cn/js/js_array_methods.asp

2.二维数组

数组中的元素还是数组,用于对数据进行二次分类

[ [元素1, 元素2], [ 元素3, 元素4 ],… ]

三、字符串对象

包装对象:目的是为了让原始类型的值像对象一样具有属性和方法;JS中提供了三种包装对象,分别是字符串对象、数字对象、布尔对象

new String()   // 将一个字符串包装为对象
String()   // 将一个值强制转换为字符串

1.转义字符

改变字符本身的意义

\'   // 将一个具有特殊意义的引号转义为普通引号
\n   // 将字符n转义为换行符
\t   // 将字符t转义为制表符,一组连续空格

2.API

length 获取字符串的长度

charAt() 获取下标对应的字符,也可以使用数组的格式 字符串[下标]

indexOf() 检测字符串中是否含有某个字符串,返回的是找到的第1个的下标,找不到返回-1

lastIndexOf() 检测字符串中是否含有某个字符串,返回的是找到的最后1个的下标,找不到返回-1

slice(start, [end]) 截取字符串,start开始的下标,end结束的下标,不包含end这一项;end为空会截取到最后;下标为负数表示倒数

toUpperCase() 将英文字母转大写

toLowerCase() 将英文字母转小写

split() 将一个字符串按照指定的字符转为数组

四、Math对象

提供了一组数学相关的API;是一个特殊的对象,不需要使用new来创建就可以直接调用API
PI 获取圆周率

abs() 计算绝对值

ceil() 向上取整

floor() 向下取整

round() 四舍五入取整

pow(x,y) 计算x的y次方

max() 获取一组数字最大值

min() 获取一组数字最小值

random() 获取随机数,范围0~1之间 >=0 <1

console.log(Math.random());	//0-1之间的随机数

     console.log(Math.round(Math.random()*10));	//0-10之间的随机数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值